Add captured stdout to jUnit report on setup error
This commit is contained in:
parent
11a7bcaaa5
commit
b28b3cc271
|
@ -163,6 +163,7 @@ class _NodeReporter(object):
|
||||||
def append_error(self, report):
|
def append_error(self, report):
|
||||||
self._add_simple(
|
self._add_simple(
|
||||||
Junit.error, "test setup failure", report.longrepr)
|
Junit.error, "test setup failure", report.longrepr)
|
||||||
|
self._write_captured_output(report)
|
||||||
|
|
||||||
def append_skipped(self, report):
|
def append_skipped(self, report):
|
||||||
if hasattr(report, "wasxfail"):
|
if hasattr(report, "wasxfail"):
|
||||||
|
|
|
@ -419,6 +419,35 @@ class TestPython:
|
||||||
systemout = pnode.find_first_by_tag("system-err")
|
systemout = pnode.find_first_by_tag("system-err")
|
||||||
assert "hello-stderr" in systemout.toxml()
|
assert "hello-stderr" in systemout.toxml()
|
||||||
|
|
||||||
|
def test_setup_error_captures_stdout(self, testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
def pytest_funcarg__arg(request):
|
||||||
|
print('hello-stdout')
|
||||||
|
raise ValueError()
|
||||||
|
def test_function(arg):
|
||||||
|
pass
|
||||||
|
""")
|
||||||
|
result, dom = runandparse(testdir)
|
||||||
|
node = dom.find_first_by_tag("testsuite")
|
||||||
|
pnode = node.find_first_by_tag("testcase")
|
||||||
|
systemout = pnode.find_first_by_tag("system-out")
|
||||||
|
assert "hello-stdout" in systemout.toxml()
|
||||||
|
|
||||||
|
def test_setup_error_captures_stderr(self, testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
import sys
|
||||||
|
def pytest_funcarg__arg(request):
|
||||||
|
sys.stderr.write('hello-stderr')
|
||||||
|
raise ValueError()
|
||||||
|
def test_function(arg):
|
||||||
|
pass
|
||||||
|
""")
|
||||||
|
result, dom = runandparse(testdir)
|
||||||
|
node = dom.find_first_by_tag("testsuite")
|
||||||
|
pnode = node.find_first_by_tag("testcase")
|
||||||
|
systemout = pnode.find_first_by_tag("system-err")
|
||||||
|
assert "hello-stderr" in systemout.toxml()
|
||||||
|
|
||||||
|
|
||||||
def test_mangle_testnames():
|
def test_mangle_testnames():
|
||||||
from _pytest.junitxml import mangle_testnames
|
from _pytest.junitxml import mangle_testnames
|
||||||
|
|
Loading…
Reference in New Issue