[py-svn] py-trunk commit dd3f0c0bc8a3: fix xml generation for skipped collections of tests
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Thu Dec 31 11:50:24 CET 2009
# HG changeset patch -- Bitbucket.org
# Project py-trunk
# URL http://bitbucket.org/hpk42/py-trunk/overview/
# User holger krekel <holger at merlinux.eu>
# Date 1262256601 -3600
# Node ID dd3f0c0bc8a35eff3b87dea5f453836fd9e4cce3
# Parent c14662d121ddf1631d99e4639b3532d11c91eab9
fix xml generation for skipped collections of tests
--- a/py/plugin/pytest_logxml.py
+++ b/py/plugin/pytest_logxml.py
@@ -76,6 +76,15 @@ class LogXML(object):
self._closetestcase()
self.errors += 1
+ def append_collect_skipped(self, report):
+ self._opentestcase_collectfailure(report)
+ s = py.xml.escape(str(report.longrepr))
+ #msg = str(report.longrepr.reprtraceback.extraline)
+ self.test_logs.append(
+ '<skipped message="collection skipped">%s</skipped>' % (s))
+ self._closetestcase()
+ self.skipped += 1
+
def append_error(self, report):
self._opentestcase(report)
s = py.xml.escape(str(report.longrepr))
@@ -130,7 +139,7 @@ class LogXML(object):
logfile = open(self.logfile, 'w', 1) # line buffered
suite_stop_time = time.time()
suite_time_delta = suite_stop_time - self.suite_start_time
- numtests = self.passed + self.skipped + self.failed
+ numtests = self.passed + self.failed
logfile.write('<testsuite ')
logfile.write('name="" ')
logfile.write('errors="%i" ' % self.errors)
--- a/testing/plugin/test_pytest_logxml.py
+++ b/testing/plugin/test_pytest_logxml.py
@@ -28,7 +28,7 @@ class TestPython:
result, dom = runandparse(testdir)
assert result.ret
node = dom.getElementsByTagName("testsuite")[0]
- assert_attr(node, errors=0, failures=1, skips=1, tests=3)
+ assert_attr(node, errors=0, failures=1, skips=1, tests=2)
def test_setup_error(self, testdir):
testdir.makepyfile("""
@@ -90,6 +90,19 @@ class TestPython:
assert_attr(fnode, message="collection failure")
assert "invalid syntax" in fnode.toxml()
+ def test_collect_skipped(self, testdir):
+ testdir.makepyfile("import py ; py.test.skip('xyz')")
+ result, dom = runandparse(testdir)
+ assert not result.ret
+ node = dom.getElementsByTagName("testsuite")[0]
+ assert_attr(node, skips=1, tests=0)
+ tnode = node.getElementsByTagName("testcase")[0]
+ assert_attr(tnode,
+ #classname="test_collect_error",
+ name="test_collect_skipped")
+ fnode = tnode.getElementsByTagName("skipped")[0]
+ assert_attr(fnode, message="collection skipped")
+
class TestNonPython:
def test_summing_simple(self, testdir):
testdir.makeconftest("""
More information about the pytest-commit
mailing list