如何将Karate测试报告发布至Cucumber Open报告平台
对接Cucumber Open发布Karate报告解决方案
核心原理说明
Karate的执行内核与原生Cucumber Runner完全独立,所有Karate特性的Step定义均由框架内部封装,不会暴露为原生Cucumber可扫描的Java StepDef实现,因此直接给ParallelRunner添加
@CucumberOptions注解用原生Cucumber触发执行的方式必然失败,会出现找不到feature文件或无法匹配Step的报错。
可行操作步骤
- 第一步:通过Karate原生执行能力生成标准Cucumber JSON报告
Karate的Runner/ParallelRunner本身支持输出完全符合Cucumber格式规范的JSON报告,只需在执行时指定输出目录即可,示例代码如下:
执行完成后即可在import com.intuit.karate.Results; import com.intuit.karate.Runner; import org.junit.jupiter.api.Test; public class KarateTestRunner { @Test public void runTests() { Results results = Runner.path("classpath:karate/features") // 指定Cucumber报告输出目录 .outputDir("target/cucumber-json-reports") .parallel(5); } }target/cucumber-json-reports目录下获取到可用的cucumber.json文件。 - 第二步:直接通过Cucumber命令行工具上传已生成的报告
不需要再次触发用例执行,直接使用Cucumber官方提供的命令行工具,读取已生成的cucumber.json文件即可完成上传发布,核心命令参考:cucumber-reporting publish \ --input target/cucumber-json-reports/cucumber.json \ --token ${YOUR_CUCUMBER_OPEN_TOKEN}
补充说明
如果使用CI/CD流水线,可将上述上传步骤配置为用例执行完成后的后置操作,即可实现每次测试完成后自动上传报告到Cucumber Open云环境共享。
内容的提问来源于stack exchange,提问作者karateTester
相关产品推荐
相关产品推荐

