Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
php:phpunit-fail [2025/02/20 20:18]
admin
php:phpunit-fail [2025/02/20 20:24] (текущий)
admin
Строка 1: Строка 1:
 ====== Причины нестабильности тестов PHPUnit (Flaky tests) ====== ====== Причины нестабильности тестов PHPUnit (Flaky tests) ======
  
 +Иногда PHPUnit тесты выполняются не с первого раза. Работают через раз. Или, например, каждый 10-й запуск фейлится. Является называется Flaky tests.
 +
 +===== Запуск одного Flaky test =====
 +
 +Вот однострочник, который запускает один тест ''InjectOfficeTest::testOfficeNameRouteToOffice'' в бесконечном режиме до тех пор, пока он не упадет. Также выводит количество раз запуска и потраченное время.
 +
 +<code bash>
 +# Предварительно настроить alias, если его нет:
 +# alias atf='php artisan test --filter'
 +
 +start=$(date +%s); count=0; while atf InjectOfficeTest::testOfficeNameRouteToOffice; do ((count++)); done; echo "Executed $count times in $(( $(date +%s) - start )) seconds"
 +</code>
 +
 +===== Кейсы, которые у меня были =====
  
-Иногда PHPUnit тесты выполняются не с первого раза. Работают через раз. Или, например, каждый 10-й запуск фейлится. Является называется Flaky tests. Вот кейсы, которые были у меня. 
  
 **1. Нарушение уникальности в БД.** **1. Нарушение уникальности в БД.**
Печать/экспорт