Организация тестов в PHPUnit

Одна из целей PHPUnit заключается в том, что тесты должны быть составными: мы хотим запускать любое количество или комбинацию тестов вместе, например, все тесты для всего проекта, либо тесты всех классов компонента, который является частью проекта, либо просто тесты для одного класса.

PHPUnit поддерживает различные способы организации тестов и составления их в набор тестов. В этой главе показаны наиболее часто используемые подходы.

 

Составление набора тестов с помощью файловой системы

Возможно, самый простой способ составить набор тестов — это держать все исходные файлы тестов в тестовом каталоге. PHPUnit может автоматически обнаруживать и запускать тесты путём рекурсивного обхода тестового каталога.

Давайте посмотрим на набор тестов библиотеки sebastianbergmann/money. Просматривая структуру каталогов этого проекта, мы видим, что классы тестов в каталоге tests отражают структуру пакета и классов тестируемой системы в каталоге src:

Для запуска всех тестов библиотеки нам просто нужно указать исполнителю тестов командной строки PHPUnit каталог с тестами:

Примечание

Если вы укажите исполнителю тестов командной строки PHPUnit каталог, он будет искать файлы с маской *Test.php

Для запуска только тестов, объявленных в классе CurrencyTest, находящегося в файле tests/CurrencyTest.php, мы можем использовать следующую команду:

Для более точного контроля, какие тесты запускать, мы можем использовать опцию --filter:

Примечание

Недостатком этого подхода является то, что мы не можем контролировать порядок выполнения тестов. Это может привести к проблемам с зависимостями теста см. Зависимости тестов. В следующем разделе вы увидите, как можно явно задать порядок выполнения тестов, используя конфигурационный XML-файл.

 

Составление набора тестов с помощью конфигурации XML

XML-файл конфигурации PHPUnit (Конфигурационный XML-файл) также может использоваться для составления набора тестов. Пример 5.1 показывает файл phpunit.xml с минимальной настройкой, который добавит все классы *Test, находящиеся в файлах*Test.php, после рекурсивного обхода каталога tests.

Пример 5.1 Составление набора тестов, используя конфигурацию XML

 

Если phpunit.xml или phpunit.xml.dist (в этом порядке) существует в текущем рабочем каталоге, а опция --configuration не используется, то конфигурация будет автоматически считана из этого файла.

Порядок выполнения тестов можно сделать явным:

Пример 5.2 Составление набора тестов, используя конфигурацию XML

https://phpunit.readthedocs.io/ru/latest/organizing-tests.html

Leave a Reply

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.