Поддержите проект сделав пожертвование.

Запускаем тесты 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"
>
1

Вакансии

Спонсоры

Помощь в разработке вашего проекта на Laravel

Независимо от сложности проекта эти кампании помогают сообществу и всем его участникам воплощать идеи в элегантные приложения.

Присоединиться

Инструменты для управления эмоциями, которые помогают людям контролировать свою жизнь и лучше понимать себя.

Перейти

Подкасты c зажигательными эпизодами, которые заставят задуматься и приведут к новым перспективам.

Перейти