失敗したシナリオが正常にrerunedた場合ジェンキンスビルドのステータスを変更する方法

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

それを実行します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=193052&siteId=1