Наличие нескольких утверждений в одном тесте — это нормально, но если утверждение терпит неудачу, весь тест прерывается, и другие утверждения в том же тесте не проверяются.
В зависимости от того, что вы тестируете и как вы это закодировали, вы можете разделить некоторые тесты на несколько подтестов.
OverAssertive — это расширение PHPUnit, которое сообщает прямо в консоли, какие тесты имеют «слишком много» утверждений, где «слишком много» — это то, что вы определяете, чтобы помочь вам проверить и, возможно, реорганизовать некоторые тесты.
Включите его со всеми настройками по умолчанию, добавив следующее в файл phpunit.xml
вашего набора тестов:
<phpunit bootstrap="vendor/autoload.php"> ... <слушатели> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener" /> </слушатели> </phpunit>
Если вы не используете автозагрузчик, вы также можете указать расположение библиотеки:
<phpunit bootstrap="boostrap.php"> ... <слушатели> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener" file="/path/to/OverAssertiveTestsListener.php" /> </слушатели> </phpunit>
Теперь запустите набор тестов как обычно. OverAssertive будет сообщать об ассертивных тестах в консоли после завершения работы пакета.
OverAssertive имеет два настраиваемых параметра:
alertThreshold — количество утверждений, которые сделают тест более утвердительным (по умолчанию: 10 утверждений).
reportLength — количество чрезмерно убедительных тестов, включенных в отчет (по умолчанию: 10 тестов).
Эти параметры конфигурации устанавливаются в phpunit.xml
при добавлении прослушивателя:
<phpunit ...><!-- ... другая конфигурация пакета здесь ... --><listeners> <listener class="OzhPHPUnitListenerOverAssertiveTestsListener"> <аргументы> <массив> <element key="alertThreshold"> <целое>10</целое> </элемент> <element key="reportLength"> <целое>10</целое> </элемент> </массив> </аргументы> </слушатель> </слушатели> </phpunit>
Большое спасибо phpunit-speedtrap
Делай, черт возьми, что хочешь.