Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.
Как найти моргающий (flaky) юнит-тест? Какие могут быть причины?
Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.
Типичные причины: реальные часы и сеть, гонки, общая БД, неочищенное глобальное состояние, случайность и ожидания через sleep. Проверьте тест отдельно и после других тестов; замените внешние зависимости управляемыми fake, время — подменяемыми часами, а ожидание — явным условием. Просто добавить retries значит скрыть симптом, а не исправить причину.