parent
60a358fa2d
commit
a43ba78d3b
|
@ -0,0 +1 @@
|
|||
The XML file produced by ``--junitxml`` now correctly contain a ``<testsuites>`` root element.
|
|
@ -657,18 +657,17 @@ class LogXML:
|
|||
)
|
||||
logfile.write('<?xml version="1.0" encoding="utf-8"?>')
|
||||
|
||||
logfile.write(
|
||||
Junit.testsuite(
|
||||
self._get_global_properties_node(),
|
||||
[x.to_xml() for x in self.node_reporters_ordered],
|
||||
name=self.suite_name,
|
||||
errors=self.stats["error"],
|
||||
failures=self.stats["failure"],
|
||||
skipped=self.stats["skipped"],
|
||||
tests=numtests,
|
||||
time="%.3f" % suite_time_delta,
|
||||
).unicode(indent=0)
|
||||
suite_node = Junit.testsuite(
|
||||
self._get_global_properties_node(),
|
||||
[x.to_xml() for x in self.node_reporters_ordered],
|
||||
name=self.suite_name,
|
||||
errors=self.stats["error"],
|
||||
failures=self.stats["failure"],
|
||||
skipped=self.stats["skipped"],
|
||||
tests=numtests,
|
||||
time="%.3f" % suite_time_delta,
|
||||
)
|
||||
logfile.write(Junit.testsuites([suite_node]).unicode(indent=0))
|
||||
logfile.close()
|
||||
|
||||
def pytest_terminal_summary(self, terminalreporter):
|
||||
|
|
|
@ -41,6 +41,16 @@ class DomNode:
|
|||
def _by_tag(self, tag):
|
||||
return self.__node.getElementsByTagName(tag)
|
||||
|
||||
@property
|
||||
def children(self):
|
||||
return [type(self)(x) for x in self.__node.childNodes]
|
||||
|
||||
@property
|
||||
def get_unique_child(self):
|
||||
children = self.children
|
||||
assert len(children) == 1
|
||||
return children[0]
|
||||
|
||||
def find_nth_by_tag(self, tag, n):
|
||||
items = self._by_tag(tag)
|
||||
try:
|
||||
|
@ -75,7 +85,7 @@ class DomNode:
|
|||
return self.__node.tagName
|
||||
|
||||
@property
|
||||
def next_siebling(self):
|
||||
def next_sibling(self):
|
||||
return type(self)(self.__node.nextSibling)
|
||||
|
||||
|
||||
|
@ -384,11 +394,11 @@ class TestPython:
|
|||
fnode = tnode.find_first_by_tag("failure")
|
||||
fnode.assert_attr(message="ValueError: 42")
|
||||
assert "ValueError" in fnode.toxml()
|
||||
systemout = fnode.next_siebling
|
||||
systemout = fnode.next_sibling
|
||||
assert systemout.tag == "system-out"
|
||||
assert "hello-stdout" in systemout.toxml()
|
||||
assert "info msg" not in systemout.toxml()
|
||||
systemerr = systemout.next_siebling
|
||||
systemerr = systemout.next_sibling
|
||||
assert systemerr.tag == "system-err"
|
||||
assert "hello-stderr" in systemerr.toxml()
|
||||
assert "info msg" not in systemerr.toxml()
|
||||
|
@ -1094,6 +1104,20 @@ def test_random_report_log_xdist(testdir, monkeypatch):
|
|||
assert failed == ["test_x[22]"]
|
||||
|
||||
|
||||
def test_root_testsuites_tag(testdir):
|
||||
testdir.makepyfile(
|
||||
"""
|
||||
def test_x():
|
||||
pass
|
||||
"""
|
||||
)
|
||||
_, dom = runandparse(testdir)
|
||||
root = dom.get_unique_child
|
||||
assert root.tag == "testsuites"
|
||||
suite_node = root.get_unique_child
|
||||
assert suite_node.tag == "testsuite"
|
||||
|
||||
|
||||
def test_runs_twice(testdir):
|
||||
f = testdir.makepyfile(
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue