Запускаем тесты PHPUnit в случайном порядке
Работая с тестами, иногда можно столкнуться с неприятной ситуацией: один тест проходит, только если выполняется сразу после другого. И если изменить порядок, этот тест ломается.
Это говорит о том, что тесты зависят друг от друга. А идеальный тест всегда должен быть независимым и начинаться с «чистого листа».
Хороший способ обнаружить такие скрытые зависимости это запускать тесты в случайном порядке. Если тест не проходит, когда порядок перемешан, это значит, что он зависит от других, и с этим нужно что-то сделать.
PHPUnit и Laravel поддерживают специальный флаг для случайного порядка --order-by=random
# Для Laravel
php artisan test --order-by=random
# Для Laravel Dusk
php artisan dusk --order-by=random
# Для PHPUnit
vendor/bin/phpunit --order-by=random
Попробуйте запустить свои тесты в случайном порядке и посмотрите, есть ли у вас зависимые тесты. 😉
Еще лучше добавьте атрибут executionOrder
в конфигурационный файл, что бы запуск тестов в случайном порядке был по умолчанию 🚀.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
executionOrder="random"
>