Перезапускать огурцы с ошибками автоматически с помощью тега?
В нашей сборке есть определенные сценарии, которые не срабатывают по причинам, которые не поддаются контролю или слишком долго отлаживаются должным образом. Такие асинхронные javascript и т.д.
Во всяком случае, иногда иногда они работают, но иногда я не думаю, что было бы неплохо добавить тег к сценарию, например, @rerun_on_failure или @retry, который будет повторять сценарий X числа раз, прежде чем сбой построить.
Я понимаю, что это не идеальное решение, но тест по-прежнему ценен, и мы хотели бы сохранить его без ложных негативов.
Фактический тест, который не удается щелкнуть по ссылке, и ожидает, что событие отслеживания будет отправлено на сервер для аналитики (через javascript). Иногда веб-драйвер селена загружает следующую страницу слишком быстро, и у события нет времени для отправки.
Спасибо
Ответы
Ответ 1
Я подумываю написать что-то вроде того, что вы описываете, но я нашел это:
http://web.archive.org/web/20160713013212/http://blog.crowdint.com/2011/08/22/auto-retry-failed-cucumber-tests.html
Если вы устали от необходимости перезапускать сборки на своем CI-сервере из-за не детерминированных сбоев, этот пост для вас.
В двух словах: он создает новую команду rake под названием огурец: повтор, который использует rerun.txt для повторения неудачных тестов. Это должно быть довольно легко добавить некоторые петли в там, чтобы повторить не более 3x (например).
Ответ 2
В более поздних версиях Cucumber есть флаг повтора
cucumber --retry 2
Повторно повторите тесты два раза, если это не сработает