Skip to main content

Исправить нестабильный тест

Нестабильный, или flaky-тест, иногда проходит, а иногда падает без изменений в коде, тестах и окружении. Veai помогает воспроизвести расхождение, найти проблемное место и собрать данные для исправления.

Когда применять

  • тест периодически падает в CI или при локальном запуске;
  • отдельный тест проходит, а вместе с другими — нет;
  • результат зависит от порядка или времени запуска;
  • есть подозрение на гонку данных, внешний сервис, базу данных или недостаточную изоляцию тестов.

Что подготовить

  • нестабильный тест, который можно запускать локально;
  • рабочую тестовую конфигурацию;
  • достаточно времени на повторные прогоны: для воспроизведения тест запускается несколько раз.

Запуск тестовой конфигурации через IDE

Для воспроизведения нестабильности нужна рабочая локальная конфигурация теста.

Как найти и исправить причину

  1. Нажмите значок Veai рядом с тестом и выберите Veai: Analyze If Flaky.
  2. Дождитесь повторных запусков теста и других тестов его класса.
  3. Если расхождение воспроизвелось, откройте указанную проблемную инструкцию и стек вызовов.
  4. Продолжите анализ с помощью агента: Veai передаст ему собранные данные, чтобы объяснить возможную причину и предложить решение.
  5. Проверьте, относится ли причина к тесту, рабочему коду, внешнему сервису или общей тестовой среде.
  6. Исправьте код или тест. Если проблемный компонент находится вне вашей зоны ответственности, передайте собранные данные владельцу компонента.
  7. Повторите анализ того же теста.

Если повторные запуски не воспроизвели падение, это ещё не доказывает стабильность теста. Используйте собранные данные и сведения из CI, чтобы продолжить разбор причины.

Как проверить результат

  • повторно запустите анализ flaky-теста;
  • выполните тест отдельно и вместе с тестами того же класса;
  • убедитесь, что исправление не ослабило утверждения теста;
  • просмотрите изменения в Agent Changes.

Критерий готовности

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

Ограничения

Для поиска нестабильности требуется несколько запусков, поэтому проверка может занять заметное время. Оценка числа запусков в интерфейсе приблизительная. Если проблема зависит от внешней системы или редкого состояния окружения, локальный анализ может не воспроизвести её сразу.

Связанные страницы