Больше деталей в PHPUnit
Во время написания тестов для одного из моих сервисов я столкнулся с не самой приятной проблемой, которая выглядела следующим образом:
PHPUnit 11.4.2 by Sebastian Bergmann and contributors.
Runtime: PHP 8.3.8
Configuration: project/path
.. 2 / 2 (100%)
Time: 00:00.711, Memory: 54.50 MB
OK, but there were issues!
Tests: 2, Assertions: 8, PHPUnit Deprecations: 2.
Если вы не заметили — позвольте указать пальцем: PHPUnit Deprecations: 2. И, как вы, наверное, уже заметили, никакой дополнительной информации при этом не предоставляется. Поскольку неизвестные проблемы могут раздражать не меньше, чем ошибки, а устаревшие функции (deprecations) со временем могут аукнуться, я решил разобраться с этой проблемой с самого начала и по возможности получить больше информации.
Чтобы получить больше информации об устаревших функциях, откройте файл phpunit.xml и добавьте в <phpunit> следующие атрибуты:
displayDetailsOnTestsThatTriggerDeprecations="true"
displayDetailsOnPhpunitDeprecations="true"
Если вы хотите получать чуть больше информации об ошибках, уведомлениях (notices) и предупреждениях (warnings) при запуске phpunit, ваш файл phpunit.xml может выглядеть следующим образом:
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
displayDetailsOnTestsThatTriggerDeprecations="true"
displayDetailsOnTestsThatTriggerErrors="true"
displayDetailsOnTestsThatTriggerNotices="true"
displayDetailsOnTestsThatTriggerWarnings="true"
displayDetailsOnPhpunitDeprecations="true">
Получив дополнительные детали по своим тестам, я увидел приятный вывод: Metadata in doc-comments is deprecated and will no longer be supported in PHPUnit 12. Update your test code to use attributes instead. Это относилось к @test, и после того как я убрал его из doc-comments, я получил чистый, аккуратный и зелёный вывод об успешном прохождении тестов:
PHPUnit 11.4.2 by Sebastian Bergmann and contributors.
Runtime: PHP 8.3.8
Configuration: project/path
.. 2 / 2 (100%)
Time: 00:00.729, Memory: 54.50 MB
OK (2 tests, 8 assertions)
Но в целом я настоятельно рекомендую ознакомиться с документацией PHPUnit