У меня есть два бегуна TestNG для запуска основной и неудачной областей сценариев огурца. В случае если MainTestRunner был успешным, состояние сборки Jenkins равно «success», и FailedTestRunner не найдет ни одного неудачного сценария в rerun.txt. Но в случае, если MainTestRunner не выполнил сценарий, и он был перезапущен в рамках FailedTestRunner и пройден, сборка Jenkins все равно не удалась.
Мне нужно решение, чтобы сделать статус сборки "зеленым", так как все тесты пройдены в конце.
У моих бегунов нет специальных трюков:
MainTestRunner:
@CucumberOptions(
features = ".",
glue = {"steps"},
monochrome = true,
format = {
"pretty",
"html:target/cucumber-pretty",
"json:target/CucumberTestReport.json",
"rerun:target/rerun.txt"
})
public class MainTestRunner extends AbstractTestNGCucumberTests {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass(alwaysRun = true)
public void setUpClass() {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
@Test(description = "Runs Cucumber Feature", dataProvider = "features")
public void feature(CucumberFeatureWrapper cucumberFeature) {
testNGCucumberRunner.runCucumber(cucumberFeature.getCucumberFeature());
}
@DataProvider
public Object[][] features() {
return testNGCucumberRunner.provideFeatures();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() {
testNGCucumberRunner.finish();
}
}
FailedTestRunner:
@CucumberOptions(
features = "@target/rerun.txt"
, glue = {"steps"}
, monochrome = true
, format = {
"pretty",
"html:target/cucumber-pretty",
"json:target/CucumberTestReport.json",
"rerun:target/rerun.txt"
})
public class FailedTestRunner extends AbstractTestNGCucumberTests {}