diff --git a/src/pytest_html/nextgen.py b/src/pytest_html/nextgen.py index ab1d2883..9eba6f8b 100644 --- a/src/pytest_html/nextgen.py +++ b/src/pytest_html/nextgen.py @@ -216,6 +216,9 @@ def pytest_runtest_logreport(self, report): config=self._config, report=report ) + if report.longrepr: + data["longreprtext"] = report.longreprtext + data["outcome"] = _process_outcome(report) row_cells = self.Cells() diff --git a/src/pytest_html/scripts/dom.js b/src/pytest_html/scripts/dom.js index 0c0564ed..4dac0272 100644 --- a/src/pytest_html/scripts/dom.js +++ b/src/pytest_html/scripts/dom.js @@ -64,19 +64,20 @@ const dom = { return header }, getListHeaderEmpty: () => listHeaderEmpty.content.cloneNode(true), - getResultTBody: ({ nodeid, longrepr, duration, extras, resultsTableRow, tableHtml, outcome}) => { + getResultTBody: ({ nodeid, longreprtext, duration, extras, resultsTableRow, tableHtml, outcome}) => { const outcomeLower = outcome.toLowerCase() const resultBody = templateResult.content.cloneNode(true) resultBody.querySelector('tbody').classList.add(outcomeLower) resultBody.querySelector('.col-result').innerText = outcome resultBody.querySelector('.col-name').innerText = nodeid resultBody.querySelector('.col-duration').innerText = `${formatDuration(duration)}s` - if (['failed', 'error', 'xfailed', 'xpassed'].includes(outcomeLower)) { - resultBody.querySelector('.log').innerText = longrepr ? - longrepr.reprtraceback.reprentries[0].data.lines.join('\n') : '' + + if (longreprtext) { + resultBody.querySelector('.log').innerText = longreprtext } else { resultBody.querySelector('.extras-row').classList.add('hidden') } + const media = [] extras?.forEach(({ name, format_type, content }) => { const extraLink = aTag.content.cloneNode(true)