Улучшение вашей игры в тестировании: отслеживание прогресса PHPUnit и создание отчетов стало проще!

Модульное тестирование — важнейший аспект разработки программного обеспечения, позволяющий разработчикам выявлять ошибки на ранних этапах и обеспечивать качество своего кода. PHPUnit, популярная среда тестирования PHP, предоставляет ряд функций для улучшения процесса тестирования. Одной из таких функций, которую разработчики часто находят ценной, является возможность отслеживать и отображать ход выполнения тестов. В этой статье мы рассмотрим различные методы отображения прогресса во время тестов в PHPUnit, используя разговорный язык и практические примеры кода.

Методы отображения прогресса тестирования PHPUnit:

  1. Использование параметра –testdox:
    PHPUnit предоставляет параметр командной строки --testdox, который генерирует удобочитаемый вывод отчета о тестировании. Эта опция отображает имена тестовых классов и методов вместе с их статусом (пройден или не пройден) во время выполнения теста. Чтобы включить эту функцию, просто запустите тесты с параметром --testdox, например:
phpunit --testdox
  1. Реализация пользовательского прослушивателя тестов:
    PHPUnit позволяет создавать собственные прослушиватели тестов, которые можно использовать для отслеживания хода выполнения тестов и составления отчетов. Реализуя интерфейс PHPUnit\Framework\TestListener, вы можете определить методы, которые будут вызываться на разных этапах процесса тестирования. Например, вы можете создать собственный прослушиватель, который выводит обновления хода выполнения на консоль или в файл журнала после каждого выполнения теста.

Вот упрощенный пример пользовательского прослушивателя тестов:

use PHPUnit\Framework\TestListener;
use PHPUnit\Framework\TestListenerDefaultImplementation;
class ProgressTestListener implements TestListener
{
    use TestListenerDefaultImplementation;
    public function endTest(\PHPUnit\Framework\Test $test, float $time): void
    {
        $testName = get_class($test) . '::' . $test->getName();
        echo "Test completed: $testName\n";
    }
}
// Register the custom listener
$listener = new ProgressTestListener();
PHPUnit\Framework\TestSuite::addListener($listener);
  1. Использование средства рендеринга HTML TestDox:
    PHPUnit также предоставляет средство рендеринга HTML TestDox, которое генерирует отчет HTML с информацией о ходе тестирования. Этот модуль визуализации создает удобный для чтения отчет с именами тестовых классов и методов, а также их статусом. Чтобы создать отчет в формате HTML, запустите PHPUnit с опцией --testdox-html, указав путь к выходному файлу:
phpunit --testdox-html report.html

Теперь, открыв файл report.html, вы увидите подробный отчет о ходе ваших тестов PHPUnit.

В этой статье мы рассмотрели различные методы отображения прогресса во время тестов в PHPUnit. Используя такие функции, как опция --testdox, настраиваемые прослушиватели тестов и средство обработки HTML TestDox, вы можете улучшить качество тестирования и получить лучшее представление о выполнении ваших тестов. Помните, что эти методы можно комбинировать или настраивать в соответствии с вашими конкретными потребностями.