如何在Geb Spock的Athaydes HTML报告中实现td标签多条件判断
修正后的Final Status列实现代码
我来帮你搞定这个测试报告的Final Status列问题,你的核心需求是当测试用例没有失败、错误和跳过的情况时显示PASS,否则显示FAILED,原来的代码主要是语法逻辑写错了,下面是修正后的完整表格代码:
<table class="summary-table"> <thead> <tr> <th>Name</th> <th>Features</th> <th>Failed</th> <th>Errors</th> <th>Skipped</th> <th>Time</th> <th>Final Status</th> </tr> </thead> <tbody> <% data.each { name, map -> def s = map.stats%> <tr class="${s.errors ? 'error' : ''} ${s.failures ? 'failure' : ''} "> <td><a href="${name}.html">$name</a></td> <td>${s.totalRuns}</td> <td>${s.failures}</td> <td>${s.errors}</td> <td>${s.skipped}</td> <td>${fmt.toTimeDuration(s.time)}</td> <td>${(s.failures == 0 && s.errors == 0 && s.skipped == 0) ? 'PASS' : 'FAILED'}</td> </tr> <% } %> </tbody> </table>
关键修改说明
- 修正了
<td>内的条件判断逻辑:用Groovy的三元运算符直接判断失败数、错误数、跳过数是否全部为0,满足条件则输出PASS,否则输出FAILED - 移除了原来错误的
if属性写法,这个Groovy模板环境下不需要这种写法,直接通过${}嵌入表达式即可 - 确保逻辑覆盖所有非通过场景:只要有任意一个失败、错误或者跳过的测试用例,就会显示
FAILED
内容的提问来源于stack exchange,提问作者Durgesh
相关产品推荐
相关产品推荐

