如何在空手道中重新运行失败的功能?

时间:2018-12-24 11:33:06

标签: karate

谁能帮助我重新运行空手道中失败的功能。下面是用于并行的黄瓜选项和流道测试-

@CucumberOptions(features = "classpath:features/xxxxx/crud_api",
        format = {"pretty", "html:target/cucumber","json:target/cucumber/report.json", "rerun:target/rerun/rerun.txt" })



@Test
    public void  test() throws IOException {
        Results results = KarateRunnerTest.parallel(getClass(), threadCount, karateOutputPath);
        assertTrue("there are scenario failures", results.getFailCount() == 0);
    }

2 个答案:

答案 0 :(得分:0)

空手道不支持此功能,但是在开发模式下(例如,使用IDE),您始终可以手动重新运行失败的测试。

您似乎使用了空手道不支持的注释选项,例如format。阅读文档,了解受支持的文档仅限于featurestags

答案 1 :(得分:0)

这是我使用 karate-1.0#retry-framework-experimental 的可重用实现,

Results retryFailedTests(Results results) {
        System.out.println("======== Retrying failed tests ========");

        Results initialResults = results;
        List<ScenarioResult> retryResult = results.getScenarioResults().filter(ScenarioResult::isFailed)
                .parallel()
                .map(scenarioResult -> initialResults.getSuite().retryScenario(scenarioResult.getScenario()))
                .collect(Collectors.toList());
        for (ScenarioResult scenarioResult : retryResult) {
            results = results.getSuite().updateResults(scenarioResult);
        }
        return results;
    }

这个java函数负责并行重试失败的场景。您可以检查 karate-timeline.html 报告以验证是否并行重试失败的场景。