Merge pull request #3499 from jeffreyrack/3491-junit-logging

3491 - Fixed a bug where stdout and stderr were logged twice by junitxml for xfail tests.
This commit is contained in:
Bruno Oliveira 2018-05-24 20:50:16 -03:00 committed by GitHub
commit 93fdad28aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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 when a test was marked xfail.

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