Исправить нестабильный тест
Нестабильный, или flaky-тест, иногда проходит, а иногда падает без изменений в коде, тестах и окружении. Veai помогает воспроизвести расхождение, найти проблемное место и собрать данные для исправления.
Когда применять
- тест периодически падает в CI или при локальном запуске;
- отдельный тест проходит, а вместе с другими — нет;
- результат зависит от порядка или времени запуска;
- есть подозрение на гонку данных, внешний сервис, базу данных или недостаточную изоляцию тестов.
Что подготовить
- нестабильный тест, который можно запускать локально;
- рабочую тестовую конфигурацию;
- достаточно времени на повторные прогоны: для воспроизведения тест запускается несколько раз.

Для воспроизведения нестабильности нужна рабочая локальная конфигурация теста.
Как найти и исправить причину
- Нажмите значок Veai рядом с тестом и выберите Veai: Analyze If Flaky.
- Дождитесь повторных запусков теста и других тестов его класса.
- Если расхождение воспроизвелось, откройте указанную проблемную инструкцию и стек вызовов.
- Продолжите анализ с помощью агента: Veai передаст ему собранные данные, чтобы объяснить возможную причину и предложить решение.
- Проверьте, относится ли причина к тесту, рабочему коду, внешнему сервису или общей тестовой среде.
- Исправьте код или тест. Если проблемный компонент находится вне вашей зоны ответственности, передайте собранные данные владельцу компонента.
- Повторите анализ того же теста.
Если повторные запуски не воспроизвели падение, это ещё не доказывает стабильность теста. Используйте собранные данные и сведения из CI, чтобы продолжить разбор причины.
Как проверить результат
- повторно запустите анализ flaky-теста;
- выполните тест отдельно и вместе с тестами того же класса;
- убедитесь, что исправление не ослабило утверждения теста;
- просмотрите изменения в Agent Changes.
Критерий готовности
Тест считается исправленным, когда повторные запуски больше не воспроизводят расхождение, он проходит отдельно и в составе связанного набора, а причина нестабильности устранена, а не скрыта дополнительными повторами.
Ограничения
Для поиска нестабильности требуется несколько запусков, поэтому проверка может занять заметное время. Оценка числа запусков в интерфейсе приблизительная. Если проблема зависит от внешней системы или редкого состояния окружения, локальный анализ может не воспроизвести её сразу.