Fix #1798 to include errors in total tests in junit xml output.
This commit is contained in:
parent
ac5c39e534
commit
e4028b4505
1
AUTHORS
1
AUTHORS
|
@ -24,6 +24,7 @@ Carl Friedrich Bolz
|
|||
Charles Cloud
|
||||
Charnjit SiNGH (CCSJ)
|
||||
Chris Lamb
|
||||
Christian Boelsen
|
||||
Christian Theunert
|
||||
Christian Tismer
|
||||
Christopher Gilling
|
||||
|
|
|
@ -65,6 +65,8 @@
|
|||
* Fixed scope overriding inside metafunc.parametrize (`#634`_).
|
||||
Thanks to `@Stranger6667`_ for the PR.
|
||||
|
||||
* Fixed the total tests tally in junit xml output (`#1798`_).
|
||||
|
||||
*
|
||||
|
||||
*
|
||||
|
@ -85,6 +87,7 @@
|
|||
.. _#1597: https://github.com/pytest-dev/pytest/pull/1597
|
||||
.. _#1605: https://github.com/pytest-dev/pytest/issues/1605
|
||||
.. _#1626: https://github.com/pytest-dev/pytest/pull/1626
|
||||
.. _#1798: https://github.com/pytest-dev/pytest/pull/1798
|
||||
.. _#460: https://github.com/pytest-dev/pytest/pull/460
|
||||
.. _#634: https://github.com/pytest-dev/pytest/issues/634
|
||||
.. _#717: https://github.com/pytest-dev/pytest/issues/717
|
||||
|
|
|
@ -369,7 +369,7 @@ class LogXML(object):
|
|||
suite_stop_time = time.time()
|
||||
suite_time_delta = suite_stop_time - self.suite_start_time
|
||||
|
||||
numtests = self.stats['passed'] + self.stats['failure'] + self.stats['skipped']
|
||||
numtests = self.stats['passed'] + self.stats['failure'] + self.stats['skipped'] + self.stats['error']
|
||||
|
||||
logfile.write('<?xml version="1.0" encoding="utf-8"?>')
|
||||
logfile.write(Junit.testsuite(
|
||||
|
|
|
@ -102,6 +102,27 @@ class TestPython:
|
|||
node = dom.find_first_by_tag("testsuite")
|
||||
node.assert_attr(name="pytest", errors=0, failures=1, skips=3, tests=5)
|
||||
|
||||
def test_summing_simple_with_errors(self, testdir):
|
||||
testdir.makepyfile("""
|
||||
import pytest
|
||||
@pytest.fixture
|
||||
def fixture():
|
||||
raise Exception()
|
||||
def test_pass():
|
||||
pass
|
||||
def test_fail():
|
||||
assert 0
|
||||
def test_error(fixture):
|
||||
pass
|
||||
@pytest.mark.xfail
|
||||
def test_xpass():
|
||||
assert 1
|
||||
""")
|
||||
result, dom = runandparse(testdir)
|
||||
assert result.ret
|
||||
node = dom.find_first_by_tag("testsuite")
|
||||
node.assert_attr(name="pytest", errors=1, failures=1, skips=1, tests=4)
|
||||
|
||||
def test_timing_function(self, testdir):
|
||||
testdir.makepyfile("""
|
||||
import time, pytest
|
||||
|
@ -128,7 +149,7 @@ class TestPython:
|
|||
result, dom = runandparse(testdir)
|
||||
assert result.ret
|
||||
node = dom.find_first_by_tag("testsuite")
|
||||
node.assert_attr(errors=1, tests=0)
|
||||
node.assert_attr(errors=1, tests=1)
|
||||
tnode = node.find_first_by_tag("testcase")
|
||||
tnode.assert_attr(
|
||||
file="test_setup_error.py",
|
||||
|
@ -195,7 +216,7 @@ class TestPython:
|
|||
result, dom = runandparse(testdir)
|
||||
assert result.ret
|
||||
node = dom.find_first_by_tag("testsuite")
|
||||
node.assert_attr(errors=1, tests=0)
|
||||
node.assert_attr(errors=1, tests=1)
|
||||
tnode = node.find_first_by_tag("testcase")
|
||||
tnode.assert_attr(classname="pytest", name="internal")
|
||||
fnode = tnode.find_first_by_tag("error")
|
||||
|
@ -341,7 +362,7 @@ class TestPython:
|
|||
result, dom = runandparse(testdir)
|
||||
assert result.ret
|
||||
node = dom.find_first_by_tag("testsuite")
|
||||
node.assert_attr(errors=1, tests=0)
|
||||
node.assert_attr(errors=1, tests=1)
|
||||
tnode = node.find_first_by_tag("testcase")
|
||||
tnode.assert_attr(
|
||||
file="test_collect_error.py",
|
||||
|
|
Loading…
Reference in New Issue