Fix: Add skip marker results to report (#636)
This commit is contained in:
parent
f1bd1ebbee
commit
89746e3203
|
@ -84,7 +84,9 @@ class BaseReport:
|
|||
self.update_test_log(report)
|
||||
|
||||
# passed "setup" and "teardown" are not added to the html
|
||||
if report.when == "call" or _is_error(report):
|
||||
if report.when == "call" or (
|
||||
report.when in ["setup", "teardown"] and report.outcome != "passed"
|
||||
):
|
||||
if not remove_log:
|
||||
processed_logs = _process_logs(report)
|
||||
test_data["log"] = _handle_ansi(processed_logs)
|
||||
|
@ -338,7 +340,7 @@ def _is_error(report):
|
|||
def _process_logs(report):
|
||||
log = []
|
||||
if report.longreprtext:
|
||||
log.append(report.longreprtext + "\n")
|
||||
log.append(report.longreprtext.replace("<", "<").replace(">", ">") + "\n")
|
||||
for section in report.sections:
|
||||
header, content = section
|
||||
log.append(f"{' ' + header + ' ':-^80}")
|
||||
|
|
|
@ -192,7 +192,40 @@ class TestHTML:
|
|||
f"""
|
||||
import pytest
|
||||
def test_skip():
|
||||
pytest.skip('{reason}')
|
||||
pytest.skip("{reason}")
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, skipped=1, total_tests=0)
|
||||
|
||||
log = get_text(page, ".summary div[class='log']")
|
||||
assert_that(log).contains(reason)
|
||||
|
||||
def test_skip_function_marker(self, pytester):
|
||||
reason = str(random.random())
|
||||
pytester.makepyfile(
|
||||
f"""
|
||||
import pytest
|
||||
@pytest.mark.skip(reason="{reason}")
|
||||
def test_skip():
|
||||
assert True
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, skipped=1, total_tests=0)
|
||||
|
||||
log = get_text(page, ".summary div[class='log']")
|
||||
assert_that(log).contains(reason)
|
||||
|
||||
def test_skip_class_marker(self, pytester):
|
||||
reason = str(random.random())
|
||||
pytester.makepyfile(
|
||||
f"""
|
||||
import pytest
|
||||
@pytest.mark.skip(reason="{reason}")
|
||||
class TestSkip:
|
||||
def test_skip():
|
||||
assert True
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
|
@ -216,20 +249,60 @@ class TestHTML:
|
|||
f"""
|
||||
import pytest
|
||||
def test_xfail():
|
||||
pytest.xfail('{reason}')
|
||||
pytest.xfail("{reason}")
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, xfailed=1)
|
||||
assert_that(get_log(page)).contains(reason)
|
||||
|
||||
def test_xfail_function_marker(self, pytester):
|
||||
reason = str(random.random())
|
||||
pytester.makepyfile(
|
||||
f"""
|
||||
import pytest
|
||||
@pytest.mark.xfail(reason="{reason}")
|
||||
def test_xfail():
|
||||
assert False
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, xfailed=1)
|
||||
assert_that(get_log(page)).contains(reason)
|
||||
|
||||
def test_xfail_class_marker(self, pytester):
|
||||
pytester.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
@pytest.mark.xfail(reason="broken")
|
||||
class TestXFail:
|
||||
def test_xfail(self):
|
||||
assert False
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, xfailed=1)
|
||||
|
||||
def test_xpass(self, pytester):
|
||||
pytester.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
@pytest.mark.xfail()
|
||||
def test_xpass():
|
||||
pass
|
||||
assert True
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
assert_results(page, xpassed=1)
|
||||
|
||||
def test_xpass_class_marker(self, pytester):
|
||||
pytester.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
@pytest.mark.xfail()
|
||||
class TestXPass:
|
||||
def test_xpass(self):
|
||||
assert True
|
||||
"""
|
||||
)
|
||||
page = run(pytester)
|
||||
|
|
Loading…
Reference in New Issue