Код: Выделить всё
├── docker-compose.yml
├── Dockerfile
├── composer.json
├── phpunit.xml
├── app/
│ └── Example.php
├── modules/
│ └── Example.php
└── tests/
├── AppTest.php
└── ModulesTest.php
Код: Выделить всё
tests
app
modules
Код: Выделить всё
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
}
Код: Выделить всё
docker compose exec php ./vendor/bin/phpunit --coverage-html coverage-report

Вы можете просмотреть полную версию репозиторий моего примера по адресу https://github.com/iwasherefirst2/poc-coverage
Проблема в Laravel:
Когда я копирую эту настройку в новой версии Laravel 10.48 .24 с той же структурой и конфигурацией, отчет о покрытии не включает папку модулей, хотя тесты для нее проходят успешно.

Вот информация, специфичная для Laravel:
- Версия Laravel: 10.48.24
- Версия PHP: 8.2.26
- Версия PHPUnit: 10.x (одинаково в обоих случаях) проекты)
Вот также полный репозиторий, который можно посмотреть на https://github.com/iwasherefirst2/poc. -laravel-coverage-modules
Что я пробовал:
- Убедился, что конфигурация пространства имен в композиторе.json правильна и композитор dump-autoload.
- Использовала одну и ту же структуру phpunit.xml в обоих проектах.
- Проверено, что тесты для папки модулей успешно выполняются в Laravel.< /li>
- Проект Laravel идентичен рабочему примеру, за исключением для дополнительных файлов и зависимостей, специфичных для Laravel.
- Несмотря на это, отчет о покрытии исключает пространство имен модулей в моем приложении Laravel, но не в моем простом приложении php.
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-laravel
Мобильная версия