如何在Karate的Cucumber HTML报告表格中新增自定义列?

Cucumber HTML报告Features板块新增size属性列操作步骤
以下操作兼容原生Cucumber报告、Karate框架集成的Cucumber HTML报告场景:
- 导出默认报告模板
找到项目引入的Cucumber报告依赖对应的jar包,从中提取渲染Features板块的模板文件(老版本是Freemarker格式的features.ftl,Karate内置报告是同级目录下的html模板文件),复制到项目自定义资源目录,比如src/test/resources/custom-cucumber-template/,不要直接修改jar包内的原文件。 - 修改模板新增列逻辑
打开复制出来的模板文件,定位到Features板块的表格定义位置:- 在表头区域合适位置新增表头单元格:
<th>Size</th> - 定位到遍历所有feature条目渲染表格行的代码段,对应表头的位置新增数据单元格,直接读取feature的size属性即可,Freemarker模板写法参考:
<td>${feature.size}</td>,如果是JS渲染的模板,直接在渲染行的逻辑里增加对应字段映射。
如果你要展示的是自定义的size属性而非feature原生的步骤/场景数统计值,需要先在报告生成的前置回调里,给每个feature结果对象追加你自定义的size字段,模板才能正常取值。
- 在表头区域合适位置新增表头单元格:
- 配置报告生成器加载自定义模板
- 若使用Maven/Gradle的cucumber-reporting插件:在插件配置项中添加
templateDirectory参数,值填写你存放自定义模板的目录路径 - 若使用Karate框架:在
karate-config.js中配置reportTemplateDir参数指向自定义模板目录即可,生成报告时会优先加载你修改后的模板,覆盖默认逻辑
- 若使用Maven/Gradle的cucumber-reporting插件:在插件配置项中添加
- 校验展示效果
执行一次测试用例生成报告,检查size列的数值是否正常展示,如果出现列错位,微调下表格列宽的css样式,和现有列视觉保持一致即可。
如果你用的是Cucumber官方最新版基于React打包的单页HTML报告,不建议直接改打包后的源码,更简便的方式是写一段自定义JS注入逻辑,等报告页面加载完成后,动态给Features表格插入列,从页面已缓存的feature元数据中读取size值渲染即可。
内容的提问来源于stack exchange,提问作者Ibadur Rehman
相关产品推荐
相关产品推荐

