Я использую 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