如何在 html 文件的 td 标签中应用 if 和 OR if or condition
how to apply if and OR if or condition in td tag in html file
我正在为我的 geb spock html 报告使用 athaydes 报告。我正在尝试修改 html 报告以获取测试用例的状态。为此,我添加了新列 'Final Column'
下面是 html 我正在使用:
<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 if="${s.totalRuns} != 0" ? 'PASS' : 'FAILED >${s.totalRuns = 0 ? 'PASS' : 'FAILED' }</td>
</tr>
<% } %>
</tbody>
</table>
现在我的要求是,如果“${s.failures}
”、“${s.errors}
”和“${s.skipped}
”都为零,那么只有列的值应该是 "PASS" 否则应该是 "FAILED".
我尝试了 <td if="${s.totalRuns} != 0" ? 'PASS' : 'FAILED >${s.totalRuns = 0 ? 'PASS' : 'FAILED' }</td>
之类的方法,但是这个解决方案不起作用,因为我对 html 很陌生。
你能在这方面帮助我吗?谢谢!
您可以使用以下代码片段,如果发生失败、错误或跳过测试则显示 FAILED,否则显示 PASS:
<td>${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }</td>
因为s.failures
和其他都是整数,我们不需要明确检查它们是否大于0。
如果您确实还想在 s.totalRuns
为零时隐藏该值,则可以添加另一个条件。一般经验法则:<% ... %>
之间的所有内容都可以是任何 Groovy 代码。可能有比这个更简洁的解决方案,但它确实有效:
<td>
<% if (s.totalRuns) { %>
${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }
<% } %>
</td>
我正在为我的 geb spock html 报告使用 athaydes 报告。我正在尝试修改 html 报告以获取测试用例的状态。为此,我添加了新列 'Final Column' 下面是 html 我正在使用:
<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 if="${s.totalRuns} != 0" ? 'PASS' : 'FAILED >${s.totalRuns = 0 ? 'PASS' : 'FAILED' }</td>
</tr>
<% } %>
</tbody>
</table>
现在我的要求是,如果“${s.failures}
”、“${s.errors}
”和“${s.skipped}
”都为零,那么只有列的值应该是 "PASS" 否则应该是 "FAILED".
我尝试了 <td if="${s.totalRuns} != 0" ? 'PASS' : 'FAILED >${s.totalRuns = 0 ? 'PASS' : 'FAILED' }</td>
之类的方法,但是这个解决方案不起作用,因为我对 html 很陌生。
你能在这方面帮助我吗?谢谢!
您可以使用以下代码片段,如果发生失败、错误或跳过测试则显示 FAILED,否则显示 PASS:
<td>${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }</td>
因为s.failures
和其他都是整数,我们不需要明确检查它们是否大于0。
如果您确实还想在 s.totalRuns
为零时隐藏该值,则可以添加另一个条件。一般经验法则:<% ... %>
之间的所有内容都可以是任何 Groovy 代码。可能有比这个更简洁的解决方案,但它确实有效:
<td>
<% if (s.totalRuns) { %>
${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }
<% } %>
</td>