Fixed a bug where stdout and stderr were logged twice by junitxml.

This commit is contained in:
Jeffrey Rackauckas 2018-05-23 19:34:45 -07:00
parent afde9f07f7
commit 6c519b1280
3 changed files with 19 additions and 1 deletions

View File

@ -224,7 +224,7 @@ class _NodeReporter(object):
Junit.skipped("%s:%s: %s" % (filename, lineno, skipreason),
type="pytest.skip",
message=skipreason))
self.write_captured_output(report)
self.write_captured_output(report)
def finalize(self):
data = self.to_xml().unicode(indent=0)

View File

@ -0,0 +1 @@
Fixed a bug where stdout and stderr were logged twice by junitxml.

View File

@ -458,6 +458,23 @@ class TestPython(object):
fnode.assert_attr(message="expected test failure")
# assert "ValueError" in fnode.toxml()
def test_xfail_captures_output_once(self, testdir):
testdir.makepyfile("""
import sys
import pytest
@pytest.mark.xfail()
def test_fail():
sys.stdout.write('XFAIL This is stdout')
sys.stderr.write('XFAIL This is stderr')
assert 0
""")
result, dom = runandparse(testdir)
node = dom.find_first_by_tag("testsuite")
tnode = node.find_first_by_tag("testcase")
assert len(tnode.find_by_tag('system-err')) == 1
assert len(tnode.find_by_tag('system-out')) == 1
def test_xfailure_xpass(self, testdir):
testdir.makepyfile("""
import pytest