PHPUnit 13.1.0: Улучшенные Отчеты и Настройка Покрытия Кода

PHPUnit, ключевой фреймворк для тестирования PHP-приложений, выпустил версию 13.1.0. Это минорное обновление, датированное 3 апреля 2026 года, сосредоточено на улучшении отчетности, расширении возможностей настройки покрытия кода и повышении общей стабильности. Инженеры по QA, отслеживающие обновления инструментов автоматизации тестирования, найдут в этом релизе несколько ценных улучшений.

Ключевые Изменения

Новые Возможности: PHPUnit 13.1.0 вносит значительные улучшения в возможности отчетности. XML-файл логов Open Test Reporting (OTR) теперь предоставляет больше деталей, включая неожиданный вывод, информацию о #[Group] и зарегистрированные проблемы. Это дает более полную картину результатов выполнения тестов.

Отчетность по покрытию кода получает существенную гибкость. Теперь пользователи могут настраивать параметры HTML-отчетов покрытия кода, такие как цвета, пороги и пользовательский CSS, непосредственно в XML-файле конфигурации. Это включает поддержку темного режима, цветов прогресс-бара и цветов “хлебных крошек”, что позволяет создавать высокоадаптированные визуальные отчеты без необходимости предварительного указания выходного каталога. Кроме того, новый атрибут includeInCodeCoverage для элементов <directory> и <file> в разделе <source> обеспечивает гранулярный контроль над тем, что включается в анализ покрытия.

Для продвинутых сценариев теперь поддерживаются настраиваемые резолверы триггеров проблем (custom issue trigger resolvers), которые можно настроить с помощью <issueTriggerResolvers> в XML-файле. Введен атрибут #[DataProviderClosure] для статических замыканий, а секции EXPECTF теперь поддерживают %r...%r для более гибкого сопоставления шаблонов.

Улучшения: Улучшены описания ошибок для ограничения StringMatchesFormatDescription (используемого assertFileMatchesFormat(), assertStringMatchesFormat() и секциями EXPECTF), что упрощает диагностику сбоев утверждений. Палитра цветов по умолчанию для HTML-отчета покрытия кода обновлена на более дружественную для людей с дальтонизмом сине-янтарно-оранжевую схему.

Устаревшие Функции: Опция CLI --log-events-verbose-text <file> теперь устарела. id() и after() для ожиданий mock-объектов также мягко устарели. Командам QA следует пересмотреть свои скрипты и настройки тестов, чтобы избежать зависимости от этих функций в будущих версиях.

Исправления: Было устранено несколько проблем, включая сбои FILE_EXTERNAL, нарушающие __DIR__, отсутствие предупреждений при многократной настройке одного и того же расширения тестового раннера, хрупкую логику в TestSuiteLoader, вызывающую ошибки “Class not found”, и сбои изоляции процессов с несериализуемыми глобальными переменными. Эти исправления способствуют более стабильной и предсказуемой среде тестирования.

Влияние на QA-команды

Это обновление предоставляет QA-командам улучшенную видимость результатов тестов благодаря более насыщенным XML-логам OTR и более четким сообщениям об ошибках утверждений. Широкие возможности настройки HTML-отчетов покрытия кода позволяют лучше визуализировать и анализировать покрытие тестов, помогая выявлять непроверенные области. В целом, исправления повышают надежность выполнения тестов, уменьшая количество ложных срабатываний или проблем, связанных с окружением.

Часто Задаваемые Вопросы

В: Какое наиболее значимое изменение для отчетности о тестировании в PHPUnit 13.1.0? О: XML-файл логов Open Test Reporting (OTR) теперь включает неожиданный вывод, информацию о #[Group] и зарегистрированные проблемы, предоставляя более полную запись выполнения тестов.

В: Могу ли я настроить внешний вид HTML-отчетов покрытия кода? О: Да, PHPUnit 13.1.0 позволяет обширно настраивать HTML-отчеты покрытия кода, включая цвета, пороги, пользовательский CSS, темный режим и цвета прогресс-бара, все это настраивается через XML-файл конфигурации.

В: Есть ли какие-либо изменения, о которых QA-инженерам следует знать, которые могут нарушить совместимость? О: Хотя это минорный релиз, опция CLI --log-events-verbose-text и id()/after() для ожиданий mock-объектов были устаревшими. Рекомендуется проверить конфигурации и скрипты тестов на предмет использования этих устаревших функций.

Для получения подробной информации по установке обратитесь к официальной документации PHPUnit 13.1. Будьте в курсе разработки PHPUnit, подписавшись на @phpunit@phpc.social или на рассылку PHPUnit Updates.