我的自动化项目中有两个跑步者,如下所示:
主要运行者 - 执行所有@ui-test
标记的测试用例,如果方案失败,target/rerun.txt
将填充方案位置(例如{{1} }}):
features/Dummy.feature:22
辅助跑步者 - 从@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
执行执行时,会创建两个结果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.json
,maven
,java
,cucumber-java8
,cucumber-junit
答案 0 :(得分:1)
我遇到了与你类似的问题,但是,我已经使用了单跑,从testNG处理重新运行(重新运行是我从JUnit切换到TestNG的原因之一)并且作为结果我有在我的json报告中增加了测试数量。 我的解决方案是之后清理json文件,尽管Jenkins知道测试失败,但它不会将构建标记为失败或不稳定。 在您的特定情况下,您可能尝试以某种方式匹配rerun.json中的测试并将其从常规json报告中排除。 对于解析jsons,我可能会建议使用Jackson FasterXML
答案 1 :(得分:0)
我在Jenkins中使用file
最新版本和以下配置。
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