как применять if и OR if или условие в теге td в html файле - PullRequest
0 голосов
/ 11 мая 2018

Я использую отчеты athaydes для моего отчета geb spock html. Я пытаюсь изменить HTML-отчет, чтобы получить статус тестового случая. Для этого я добавил новый столбец как «Окончательный столбец» Ниже 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.

Не могли бы вы помочь мне на этом фронте. Спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете использовать следующий фрагмент кода, чтобы показать FAILED, если произошли сбои, ошибки или пропущенные тесты, и PASS, если нет:

<td>${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }</td>

As s.failures, а остальные целые числа, мы неНе нужно явно проверять, больше ли они 0.

Если вы также хотите скрыть значение, если s.totalRuns равно нулю, вы можете добавить другое условие.Общее правило: все между <% ... %> может быть любым Groovy-кодом.Возможно, есть более чистые решения, чем этот, но он делает свое дело:

<td>
    <% if (s.totalRuns) { %>
        ${ s.failures || s.errors || s.skipped ? 'FAILED' : 'PASS' }
    <% } %>
</td>
...