Как найти моргающий (flaky) юнит-тест? Какие могут быть причины?

Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.

Короткий ответ

Что ответить на собеседовании

Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.

Подробный разбор

Ответ с пояснениями

Flaky-тест иногда проходит и иногда падает без изменения проверяемого кода. Ищите его повторными запусками с сохранением seed, порядка тестов, окружения и диагностических данных.

Типичные причины: реальные часы и сеть, гонки, общая БД, неочищенное глобальное состояние, случайность и ожидания через sleep. Проверьте тест отдельно и после других тестов; замените внешние зависимости управляемыми fake, время — подменяемыми часами, а ожидание — явным условием. Просто добавить retries значит скрыть симптом, а не исправить причину.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее