Практически в любом приложении есть функционал, который зависит от времени, всего от нескольких секунд — что-то появилось и автоматически исчезло, что-то запустилось в фоновом режиме и тому подобное. И когда мы начинаем писать на это автотесты — возникают проблемы. Система чуть притормозила и не успела завершить фоновую работу до того, как мы ожидали, браузер отработал чуть быстрее, и уже скрыл то, что мы хотели увидеть… Всё это ведёт к тому, что автотесты на такой функционал иногда падают без веской причины — система работает, а тест красный. Это ведёт к утрате доверия к билдам.
Классические решения — мониторить и перезапускать такие тесты, поставить ожидания побольше — решают не проблему, а симптомы. Мы решили бороться с самой болезнью. И я расскажу, как мы победили:
Также расскажу, как мы продолжаем непримиримую борьбу с флаки-тестами.