огурец перезапустить неудачные сценарии автоматически с тегом? - PullRequest
13 голосов
/ 23 марта 2012

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

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

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

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

Спасибо

Ответы [ 2 ]

10 голосов
/ 01 июня 2012

Я подумывал написать что-то вроде того, что вы описываете, но я нашел это:

http://web.archive.org/web/20160713013212/http://blog.crowdint.com/2011/08/22/auto-retry-failed-cucumber-tests.html

Если вы устали от необходимостиKick собирает ваш сервер CI из-за недетерминированных сбоев, этот пост для вас.

В двух словах: он создает новую задачу rake под названием cucumber: rerun, которая использует rerun.txt для повторения неудачных тестов,Должно быть довольно легко добавить туда несколько циклов, чтобы повторить попытку не более 3 раз (например).

7 голосов
/ 16 декабря 2016

Более поздние версии Cucumber имеют флаг повторения

cucumber --retry 2

Повторить тесты два раза, если он не пройдёт

...