将多个json结果合并到一个更新的Cucumber-JVM报告中

时间:2016-09-28 08:49:45

标签: jenkins cucumber-jvm cucumber-java

我的自动化项目中有两个跑步者,如下所示:

  1. 主要运行者 - 执行所有@ui-test标记的测试用例,如果方案失败,target/rerun.txt将填充方案位置(例如{{1} }}):

    features/Dummy.feature:22
  2. 辅助跑步者 - 从@RunWith(Cucumber.class) @CucumberOptions( features = "classpath:features", plugin = {"pretty", "html:target/cucumber-html-report", "json:target/cucumber.json", "rerun:target/rerun.txt"}, tags = {"@ui-test", "~@ignore"} ) public class RunCukesTest { } 重新执行方案:

    target/rerun.txt
  3. 执行执行时,会创建两个结果json文件:

    • @RunWith(Cucumber.class) @CucumberOptions( features = "@target/rerun.txt", plugin = {"pretty", "html:target/cucumber-html-report-rerun", "json:target/cucumber_rerun.json"} ) public class ReRunFailedCukesTest { }
    • cucumber.json

    Jenkins将通过cucumber_rerun.json插件收集结果,并创建合并报告。

    问题是,即使在第二次运行中传递了所有Cucumber-JVM Reports测试,由于target/rerun.txt,报告状态仍将失败。

    是否有办法(设置cucumber.json插件或修改上方显示的参赛者)使用Cucumber-JVM Reports的结果覆盖cucumber.json并仅发布修改后的cucumber_rerun.json }?

    另一个子关键字:cucumber.jsonmavenjavacucumber-java8cucumber-junit

2 个答案:

答案 0 :(得分:1)

我遇到了与你类似的问题,但是,我已经使用了单跑,从testNG处理重新运行(重新运行是我从JUnit切换到TestNG的原因之一)并且作为结果我有在我的json报告中增加了测试数量。 我的解决方案是之后清理json文件,尽管Jenkins知道测试失败,但它不会将构建标记为失败或不稳定。 在您的特定情况下,您可能尝试以某种方式匹配rerun.json中的测试并将其从常规json报告中排除。 对于解析jsons,我可能会建议使用Jackson FasterXML

答案 1 :(得分:0)

我在Jenkins中使用file最新版本和以下配置。

Image Of Config In Jenkins

第一名选手

Jenkins cucumber reporting

第二名选手

@RunWith(Cucumber.class)
@CucumberOptions(
		features="FolderFeature",
		glue={"Gluefolder"},
		plugin={"html:target/cucumberpf-html-report",
				"json:target/cucumberpf.json"}
		)

public class RunPF {

}

我在两个@RunWith(Cucumber.class) @CucumberOptions( features="Blah/Test.feature", glue={"mygluefolder"}, plugin={"html:target/cucumber-html-report", "json:target/cucumber.json"} ) public class RunRA { }个文件中都失败了,当它们通过时,它们都在一个.json报告中正确合并和更新。

这是错误:

cucumber