如何在athaydes spock-reports的HTML报告中添加自定义内容?
解决Spock Reports中显示收据号的问题
我来帮你搞定在athaydes spock-reports的HTML报告中显示收据号的问题。你遇到的reportInfo不生效的情况,大概率是配置没到位或者使用时机不对,下面给你几种可行的方案:
方案一:正确配置并使用reportInfo
首先要确保spock-reports的配置文件(src/test/resources/SpockConfig.groovy)中开启了reportInfo的显示:
com.athaydes.spockframework.report { // 开启reportInfo内容的显示 includeReportInfo = true // 可选:开启代码块显示,方便对应测试步骤 showCodeBlocks = true // 其他你需要的配置... }
然后修改你的测试代码,把reportInfo调用放在then块内部(确保在测试步骤的上下文里执行):
def "Step 2:User initiates transfer process"() { when: "Clicks on the Start New Transfer button" page.selectionOfItem() sleep(2000) then: "Receipt Number should be generated" at ManageConnections def receiptNumber = tabConnections.text() // 这里调用reportInfo,内容会出现在当前then块的报告部分 reportInfo "Generated Receipt Number: $receiptNumber" }
(小提示:你代码里的"Reciept"拼写有误,应该是"Receipt",不影响功能但建议修正)
方案二:利用标准输出捕获
spock-reports可以捕获测试中的println输出,只要在配置里开启相关选项,就能把打印内容显示在报告中:
在SpockConfig.groovy中添加:
com.athaydes.spockframework.report { captureStandardOutput = true showStandardOutput = true }
然后测试代码里直接打印收据号:
then: "Receipt Number should be generated" at ManageConnections def receiptNumber = tabConnections.text() println "Generated Receipt Number: $receiptNumber"
这种方式简单直接,打印的内容会出现在报告的对应测试步骤下方。
方案三:使用Geb的自定义报告片段
如果想要更定制化的显示样式(比如加粗、换行),可以用Geb的report方法生成自定义HTML片段:
then: "Receipt Number should be generated" at ManageConnections def receiptNumber = tabConnections.text() report("Receipt Number Details") { writer -> writer.write(""" <div style="margin: 10px 0; padding: 8px; background: #f5f5f5;"> <h4>Generated Receipt Number:</h4> <p style="font-size: 16px; font-weight: bold;">$receiptNumber</p> </div> """) }
这样会在报告中生成一个独立的、带样式的块,专门展示收据号,视觉上更清晰。
验证配置生效
如果还是没生效,先检查SpockConfig.groovy是否放在正确的位置(src/test/resources目录下),并且配置项没有拼写错误。另外,确保你的spock-reports版本是最新的,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Durgesh
相关产品推荐
相关产品推荐

