如何自定义Spock报告表内容?

时间:2020-01-08 11:48:45

标签: unit-testing groovy spock spock-reports

我想个性化Spock报告的内容。在这种情况下,我想用更具可读性的内容替换xml输出。 在我的测试方案中,预期的xml主体必须将HttpStatus与以下数据表匹配(为简单起见,我仅保留了前两个方案)

where:
        xml                                            | returnedCode      | errorsReceived   | errorsNotReceived
        innerClass.getFileContent("TS0001_TC0001.xml") | HttpStatus.OK     | null             | null
        innerClass.getFileContent("TS0001_TC0002.xml") | HttpStatus.OK     | null             | null

我获得以下一种作为测试方案:

left part of a sub report right part of a sub report

如上所示,xml输出正确显示。但是,可读性非常差。我想Spock报告不显示xml,而是显示一些输入参数。文档中很少提及Spock报告以及我们可以使用的方法。

我可以告诉Spock Report在不改变测试本质的情况下显示某些内容(在这种情况下只是一个文本)而不是其他内容(在这种情况下为xml输出)吗?

感谢您的贡献。

1 个答案:

答案 0 :(得分:1)

报表不是spock内置的功能。它是一个第三方项目,该项目使用Spock侦听器来拦截测试执行的各个步骤并生成报告。这就是为什么它根本不在Spock文档中。

您似乎正在使用:spock-reports(也有damage control

基本上,您需要更改模板,该模板是应以html格式写在报告中的算法:

  1. 创建模板(阅读文档/您可能必须学习源代码,但并不复杂)

  2. META-INF/services/com.athaydes.spockframework.report.IReportCreator.properties中,使spock报告使用您在步骤1中创建的模板。