Testcase reports with a url attribute will now properly write this to junitxml
This commit is contained in:
parent
9c45d6cd83
commit
1b259f70f3
|
@ -9,9 +9,12 @@
|
|||
* Add ``buffer`` attribute to stdin stub class ``pytest.capture.DontReadFromInput``
|
||||
Thanks `@joguSD`_ for the PR.
|
||||
|
||||
*
|
||||
* Testcase reports with a url attribute will now properly write this to junitxml.
|
||||
Thanks `@fushi`_ for the PR
|
||||
|
||||
|
||||
.. _@joguSD: https://github.com/joguSD
|
||||
.. _@fushi: https://github.com/fushi
|
||||
|
||||
.. _#1857: https://github.com/pytest-dev/pytest/issues/1857
|
||||
|
||||
|
|
|
@ -102,6 +102,8 @@ class _NodeReporter(object):
|
|||
}
|
||||
if testreport.location[1] is not None:
|
||||
attrs["line"] = testreport.location[1]
|
||||
if hasattr(testreport, "url"):
|
||||
attrs["url"] = testreport.url
|
||||
self.attrs = attrs
|
||||
|
||||
def to_xml(self):
|
||||
|
|
|
@ -922,3 +922,28 @@ def test_global_properties(testdir):
|
|||
actual[k] = v
|
||||
|
||||
assert actual == expected
|
||||
|
||||
|
||||
def test_url_property(testdir):
|
||||
test_url = "http://www.github.com/pytest-dev"
|
||||
path = testdir.tmpdir.join("test_url_property.xml")
|
||||
log = LogXML(str(path), None)
|
||||
from _pytest.runner import BaseReport
|
||||
|
||||
class Report(BaseReport):
|
||||
longrepr = "FooBarBaz"
|
||||
sections = []
|
||||
nodeid = "something"
|
||||
location = 'tests/filename.py', 42, 'TestClass.method'
|
||||
url = test_url
|
||||
|
||||
test_report = Report()
|
||||
|
||||
log.pytest_sessionstart()
|
||||
node_reporter = log._opentestcase(test_report)
|
||||
node_reporter.append_failure(test_report)
|
||||
log.pytest_sessionfinish()
|
||||
|
||||
test_case = minidom.parse(str(path)).getElementsByTagName('testcase')[0]
|
||||
|
||||
assert (test_case.getAttribute('url') == test_url), "The URL did not get written to the xml"
|
Loading…
Reference in New Issue