Как изменить статус сборки Jenkins, если неудачные сценарии были успешно перезапущены - PullRequest
0 голосов
/ 08 января 2019

У меня есть два бегуна 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 {}

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Основная цель состояла в том, чтобы получить «зеленый» статус Дженкинса, если второй тестовый прогон прошел успешно.
Я добавил еще один шаг сборки. Сейчас я использую:

mvn clean test -Dmaven.test.failure.ignore=true

для записи всех неудачных тестов в файл rerun.txt.
И:

mvn test -Dtest=runners.FailedTestRunner -DfailIfNoTests=false

чтобы запустить его.

0 голосов
/ 12 января 2019

Если бы я мог видеть ваши шаги конвейера, это помогло бы ответить, но если вы выполните свои тесты на огурец с помощью шага sh, то вы сможете получить статус завершения ваших выполнений с помощью returnStatus: true. Если main терпит неудачу и sh возвращает состояние выхода> 0, то вы можете запустить сбой без изменения статуса сборки. Если воспроизведение завершится неудачно, тогда вы позволите ему вернуть статус ошибки, если основные передачи пройдены, тогда вы можете просто пропустить ошибку.

...