razenkov55:
私はキュウリのシナリオのメインと失敗したスコープを実行するには、2人のTestNGランナーを持っています。場合MainTestRunnerが成功した、ジェンキンスビルドステータスが「成功」であるとFailedTestRunnerはrerun.txtに何らかの障害が発生したシナリオを見つけることができません。しかし、場合にMainTestRunnerは、シナリオを失敗したし、それがFailedTestRunnerの範囲にrerunedと渡された、ジェンキンスビルドがとにかく失敗しています。
私はすべてのテストが終わりに渡されるビルドステータスが「緑」にするソリューションを必要としています。
私のテストランナーには特別なトリックはありません。
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 {}
razenkov55:
主な目標は、第二のテストの実行が成功した場合は「グリーン」ジェンキンスのステータスを取得することでした。
私は1つの以上のビルドステップを追加しました。今、私が使用しています:
mvn clean test -Dmaven.test.failure.ignore=true
rerun.txtファイルにすべて失敗したテストを記録します。
そして:
mvn test -Dtest=runners.FailedTestRunner -DfailIfNoTests=false
それを実行します。