phpsoftbox / test-utils
Testing utilities for the PhpSoftBox framework
Requires
- php: ^8.5
- phpsoftbox/application: dev-master
- phpsoftbox/clock: dev-master
- phpsoftbox/config: dev-master
- phpsoftbox/http-message: dev-master
- psr/http-client: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/auth: dev-master
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/database: dev-master
- phpsoftbox/orm: dev-master
- phpsoftbox/session: dev-master
- phpunit/phpunit: ^11.2
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-22 13:58:24 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 и PostgreSQL из docker-compose фреймворка:
make select-testutils поднимает php-cli, mariadb и postgres, затем make php-test. Если сервер недоступен,
тесты падают (а не пропускаются). DSN можно переопределить через TEST_UTILS_MARIADB_DSN и TEST_UTILS_POSTGRES_DSN.