Анализ теста на моргание (flaky)
Тест называется "моргающим" (flaky), когда в нескольких запусках он иногда проходит, а иногда не проходит. При этом тестируемый код, сами тесты и конфигурация среды не меняются, просто повторяется запуск тестов.
Чаще всего моргание встречается из-за следующих причин:
- конкурентный код в тестируемом ПО или в самих тестах, например, гонка по данным
- тестируемое приложение, внешний сервис или база данных не удовлетворяет ожиданиям, например, обрабатывает только 10 запросов в минуту, а в тестах посылается 20 запросов в минуту
- тесты не изолированы друг от друга, например, если запускать только первый тест, то он проходит, а если запустить все тесты, включая первый, то первый не проходит
Наш плагин помогает идентифицировать проблему и предлагает способы её исправления. В ближайшие месяцы плагин также будет передавать всю собранную информацию агенту, чтобы он исправил ваш код автоматически.
Как воспользоваться
- Около моргающего теста нажмите на иконку
Explyt
и выберитеExplyt: Analyze If Flaky
- Плагин начнёт запускать данный тест и другие тесты в данном классе с инструментацией кода для выяснения причины моргания
- Внимание. Тесты будут запущены много раз, что может занять сравнительно большое время. Это необходимо для воспроизведения моргания.
- Плагин сообщает примерное число необходимых запусков (
Approximately 6 runs of...
). Это число не является точным, но на него можно ориентироваться. Как правило, требуется в разы меньше запусков, чем сообщается плагином.
- В случае, если запуски не привели к воспроизведению моргания, плагин сообщит, что тест не распознан, как моргающий:
is not recognized as flaky with rerun
. В данном случае плагин всё равно предложит передать код, тесты и собранные данные в AI для выявления проблемы (перейти к шагу 5). - В случае, если запуски привели к воспроизведению моргания, плагин отобразит проблемную инструкцию и стек-трейс до неё. Их можно изучить самостоятельно или просто продолжить
- При клике на
instruction
плагин покажет инструкцию в коде или тесте, на которой происходит расхождение поведений работающего и падающего запусков - При клике на
stack trace
плагин покажет
- При клике на
- Нажмите на
Continue
, плагин передаст всю собранную информацию в AI, который объяснит причину проблемы и предложит возможные решения - Внесите изменения в код или тесты для исправления проблемы или свяжитесь с коллегами, если проблемный компонент системы вне вашей зоны ответственности
- После внесённого исправления вы можете удостовериться, что моргания больше не происходит. Для этого снова повторите всё, начиная с шага 1. Если исправление было успешно, вы закончите на шаге 3.