Подтвердить что ты не робот

Перезапускать огурцы с ошибками автоматически с помощью тега?

В нашей сборке есть определенные сценарии, которые не срабатывают по причинам, которые не поддаются контролю или слишком долго отлаживаются должным образом. Такие асинхронные javascript и т.д.

Во всяком случае, иногда иногда они работают, но иногда я не думаю, что было бы неплохо добавить тег к сценарию, например, @rerun_on_failure или @retry, который будет повторять сценарий X числа раз, прежде чем сбой построить.

Я понимаю, что это не идеальное решение, но тест по-прежнему ценен, и мы хотели бы сохранить его без ложных негативов.

Фактический тест, который не удается щелкнуть по ссылке, и ожидает, что событие отслеживания будет отправлено на сервер для аналитики (через javascript). Иногда веб-драйвер селена загружает следующую страницу слишком быстро, и у события нет времени для отправки.

Спасибо

4b9b3361

Ответ 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

Повторно повторите тесты два раза, если это не сработает