Add details to error message for junit (#7390)
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
This commit is contained in:
parent
3624acb665
commit
617bf8be5b
|
@ -0,0 +1,13 @@
|
|||
``--junitxml`` now includes the exception cause in the ``message`` XML attribute for failures during setup and teardown.
|
||||
|
||||
Previously:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<error message="test setup failure">
|
||||
|
||||
Now:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<error message="failed on setup with "ValueError: Some error during setup"">
|
|
@ -236,10 +236,16 @@ class _NodeReporter:
|
|||
self._add_simple(Junit.skipped, "collection skipped", report.longrepr)
|
||||
|
||||
def append_error(self, report: TestReport) -> None:
|
||||
if report.when == "teardown":
|
||||
msg = "test teardown failure"
|
||||
assert report.longrepr is not None
|
||||
if getattr(report.longrepr, "reprcrash", None) is not None:
|
||||
reason = report.longrepr.reprcrash.message
|
||||
else:
|
||||
msg = "test setup failure"
|
||||
reason = str(report.longrepr)
|
||||
|
||||
if report.when == "teardown":
|
||||
msg = 'failed on teardown with "{}"'.format(reason)
|
||||
else:
|
||||
msg = 'failed on setup with "{}"'.format(reason)
|
||||
self._add_simple(Junit.error, msg, report.longrepr)
|
||||
|
||||
def append_skipped(self, report: TestReport) -> None:
|
||||
|
|
|
@ -266,7 +266,7 @@ class TestPython:
|
|||
|
||||
@pytest.fixture
|
||||
def arg(request):
|
||||
raise ValueError()
|
||||
raise ValueError("Error reason")
|
||||
def test_function(arg):
|
||||
pass
|
||||
"""
|
||||
|
@ -278,7 +278,7 @@ class TestPython:
|
|||
tnode = node.find_first_by_tag("testcase")
|
||||
tnode.assert_attr(classname="test_setup_error", name="test_function")
|
||||
fnode = tnode.find_first_by_tag("error")
|
||||
fnode.assert_attr(message="test setup failure")
|
||||
fnode.assert_attr(message='failed on setup with "ValueError: Error reason"')
|
||||
assert "ValueError" in fnode.toxml()
|
||||
|
||||
@parametrize_families
|
||||
|
@ -290,7 +290,7 @@ class TestPython:
|
|||
@pytest.fixture
|
||||
def arg():
|
||||
yield
|
||||
raise ValueError()
|
||||
raise ValueError('Error reason')
|
||||
def test_function(arg):
|
||||
pass
|
||||
"""
|
||||
|
@ -301,7 +301,7 @@ class TestPython:
|
|||
tnode = node.find_first_by_tag("testcase")
|
||||
tnode.assert_attr(classname="test_teardown_error", name="test_function")
|
||||
fnode = tnode.find_first_by_tag("error")
|
||||
fnode.assert_attr(message="test teardown failure")
|
||||
fnode.assert_attr(message='failed on teardown with "ValueError: Error reason"')
|
||||
assert "ValueError" in fnode.toxml()
|
||||
|
||||
@parametrize_families
|
||||
|
@ -328,7 +328,9 @@ class TestPython:
|
|||
fnode = first.find_first_by_tag("failure")
|
||||
fnode.assert_attr(message="Exception: Call Exception")
|
||||
snode = second.find_first_by_tag("error")
|
||||
snode.assert_attr(message="test teardown failure")
|
||||
snode.assert_attr(
|
||||
message='failed on teardown with "Exception: Teardown Exception"'
|
||||
)
|
||||
|
||||
@parametrize_families
|
||||
def test_skip_contains_name_reason(self, testdir, run_and_parse, xunit_family):
|
||||
|
|
Loading…
Reference in New Issue