Как перезапустить неудавшиеся сценарии с помощью Cucumber?

Я использую Cucumber для своих тестов. Как перезапустить только неудавшиеся тесты?

Ответ 1

Запустите огурец с форматированием повтора:

cucumber -f rerun --out rerun.txt

Он выведет местоположение всех неудачных сценариев этого файла.

Затем вы можете повторно запустить их, используя

cucumber @rerun.txt

Ответ 2

Вот мое простое и аккуратное решение.

Шаг 1: Напишите ваш Java файл огурца, как указано ниже, с помощью rerun:target/rerun.txt. Cucumber записывает номера rerun.txt невыполненных сценариев в rerun.txt как показано ниже.

features/MyScenaios.feature:25
features/MyScenaios.feature:45

Позже мы можем использовать этот файл на шаге 2. Назовите этот файл как MyScenarioTests.java. Это ваш основной файл для запуска ваших помеченных сценариев. Если ваши сценарии не rerun.txt тестовые случаи, MyScenarioTests.java запишет /rerun.txt их как rerun.txt в целевой директории.

@RunWith(Cucumber.class)
@CucumberOptions(
    monochrome = true,
    features = "classpath:features",
    plugin = {"pretty", "html:target/cucumber-reports",
              "json:target/cucumber.json",
              "rerun:target/rerun.txt"} //Creates a text file with failed scenarios
              ,tags = "@mytag"
           )
public class MyScenarioTests   {

}

Шаг 2: Создайте другой файл сценария, как показано ниже. Позвольте сказать это как FailedScenarios.java. Всякий раз, когда вы замечаете любой неудачный сценарий, запускайте этот файл. Этот файл будет использовать target/rerun.txt в качестве входных данных для запуска сценариев.

@RunWith(Cucumber.class)
@CucumberOptions(
    monochrome = true,
    features = "@target/rerun.txt", //Cucumber picks the failed scenarios from this file 
    format = {"pretty", "html:target/site/cucumber-pretty",
            "json:target/cucumber.json"}
  )
public class FailedScenarios {

}

Каждый раз, когда вы замечаете какие-либо неудачные сценарии, запускайте файл на шаге 2

Ответ 3

Для использования функции @target/rerun.txt вам понадобится хотя бы версия 1.2.0. После этого просто создайте бегун, который работает в конце и использует этот файл. Кроме того, если вы используете Jenkins, вы можете поместить тег на функции случайных сбоев, поэтому сборка не завершится неудачей, если только не будет выполняться дважды.

Ответ 4

Кто-нибудь интегрировал то же самое на Дженкинс тоже?

У меня есть следующая проблема на моем jenkins, но на моем локальном компьютере она работает нормально с командной строкой mvn test command Запуск TestSuite Ни одна из функций в [src/test/resources] не соответствовала фильтрам: [@tags]

0 сценариев 0 шагов 0m0.000s