当前位置: 首页 > 知识库问答 >
问题:

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

佟嘉祯
2023-03-14

有人能帮我重新运行空手道中失败的功能吗?下面是cucumber选项和跑步者测试,用于并行-

@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个答案

宦飞
2023-03-14

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

您似乎正在使用空手道不支持的注释选项,例如格式。阅读文档以了解支持的内容,它仅限于功能标签

EDIT-空手道1.0对此有实验支持:https://github.com/intuit/karate/wiki/1.0-upgrade-guide#retry-framework-experimental

阎知
2023-03-14

这是我使用空手道-1.0#重试框架的可重用实现,

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报告,以验证失败的方案是否并行重试。

 类似资料:
  • 我正在使用空手道框架进行我的自动化测试项目,目前我也在使用cucumber报告。 现在我面临一个问题,在Jenkins中只重新运行失败的测试 尝试使用-Dsurefire.rerunFailingTestsCount,但它不起作用。是否有任何特定的配置来实现这一点。

  • 如何在gatling模拟中运行多个空手道功能文件? 以下是我gatling模拟的代码片段: 我每次只能运行一个功能文件,如下所示:

  • 空手道afterFeature函数在本地运行时运行正常,但在Jenkins中运行时失败,我得到。而应为。 代码片段 主要的功能片段 cleanup.feature Jenkins的日志:的断言失败,但它没有记录响应状态的实际值。 此外,我没有看到在Jenkins中执行postFeature的日志,也不是我要做进一步分析的cucumber报告的一部分。

  • 如果一段时间后出现故障,是否有办法自动重新运行作业(例如:当连接失败时,在10分钟后重试一次)?我搜索了互联网,但我确实找到了任何结构化的解决方案,我真的被这个问题困住了。 这在塔伦德是可以实现的吗?如果是,要使用的组件是什么,以什么顺序?提前谢谢你。

  • 我正在尝试使用空手道执行bash脚本。我可以从karate-config.js和.feature文件中执行脚本。我还可以将参数传递给脚本。问题是,如果脚本失败(以0以外的其他东西退出),测试执行将继续并以SuccesFull结束。 我发现当脚本回显时,我可以作为脚本的结果访问它,这样我就可以回显退出值并对其进行断言(在一些可重用的特性中),但这似乎是一个变通方法,而不是一个有效的干净解决方案。有没

  • 我有五个不同的URLendpoint(环境)用于生产和QA,我需要在一次运行中在所有这些生产环境中执行相同的特性,并在一个cucumber报告中得到结果-(在TestNG中,我将每个环境作为参数传递到单独的XML文件中,然后使用一个公共的TestNG.XML文件,该文件包含所有这些不同环境的XML)。 我如何在Karate-config文件中管理这个? 我有以下生产环境ProdV1、ProdV2、