phpsoftbox / test-utils
Testing utilities for the PhpSoftBox framework
Requires
- php: ^8.5
- phpsoftbox/application: ^1.0
- phpsoftbox/clock: ^1.0
- phpsoftbox/config: ^1.0
- phpsoftbox/http-message: ^1.0
- psr/http-client: ^1.0
Requires (Dev)
- phpsoftbox/auth: ^1.0
- phpsoftbox/cli-app: ^1.0
- phpsoftbox/cs-fixer: ^1.2.2
- phpsoftbox/database: ^1.0
- phpsoftbox/orm: ^1.0
- phpsoftbox/session: ^1.0
- phpunit/phpunit: ^13.3
Suggests
- phpsoftbox/auth: Required for WebTestCase auth helpers: actingAs(), withRole() and guard login integration.
- phpsoftbox/database: Required for database reloader and transaction helpers.
- phpsoftbox/orm: Required for ORM entity helpers and ORM fixture relations.
- phpsoftbox/session: Required for WebTestCase and TestHttpClient session/CSRF helpers.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-29 11:56:51 UTC
README
Утилиты для тестирования пакетов и приложений на PhpSoftBox.
Документация
Подробная документация разбита по темам в docs/:
- Установка и Bootstrap
- Базовые TestCase и HTTP-клиент
- Перезагрузка БД
- Inertia и snapshot-тестирование
- Fixture API (подробно)
- Интеграция fixture в приложение
Примеры
Быстрый старт
composer require --dev phpsoftbox/test-utils
Опциональные зависимости
Базовые утилиты пакета не требуют БД, ORM, Auth и Session. Эти компоненты подключаются только для соответствующих helper-ов:
phpsoftbox/session—WebTestCase,TestHttpClient, session/CSRF helpers;phpsoftbox/auth—actingAs(),withRole(), интеграция с guard;phpsoftbox/database— database reloader и transaction helpers;phpsoftbox/orm— entity helpers и ORM fixture relations.
Используйте:
ApplicationTestCase— для интеграционных тестов без HTTP;WebTestCase— для контроллеров и HTTP-интеграции.
Для ручной перезагрузки тестовой БД:
php psb test:db:reload --mode=dump --connections=default
Если --connections не указан, будут перезагружены все подключения из DatabaseReloaderConfig.
Режимы БД: transaction (по умолчанию), reset — очистка данных без пересоздания схемы для тестов, где код
коммитит в отдельных соединениях, dump — пересоздание БД для тестов с DDL. Подробнее —
docs/03-database-reloader.md.
Для параллельного запуска:
php psb test:parallel --processes=4
Важно
FixtureRunner/FixtureContextне завязаны на контейнер.FixtureRunnerподдерживает зависимости черезDependentFixtureInterface.- Area/domain-специфичные фикстуры остаются в приложении (
tests/Utils/...).
Тесты пакета
Интеграционные тесты режима reset работают с настоящими MariaDB, MySQL и PostgreSQL из docker-compose фреймворка:
make select-testutils поднимает php-cli, mariadb и postgres; MySQL — профиль mysql
(docker compose --profile mysql up -d mysql), затем make php-test. Если сервер недоступен, тесты падают
(а не пропускаются). DSN можно переопределить через TEST_UTILS_MARIADB_DSN, TEST_UTILS_MYSQL_DSN и
TEST_UTILS_POSTGRES_DSN.