Merge junit-xml url attribute branch

Merge branch 'url_attr' of https://github.com/fushi/pytest into junitxml-url
This commit is contained in:
Floris Bruynooghe 2016-09-19 12:57:05 +01:00
commit dc16fe2bb9
3 changed files with 32 additions and 2 deletions

View File

@ -1,7 +1,8 @@
3.1.0.dev 3.1.0.dev
========= =========
* * Testcase reports with a url attribute will now properly write this to junitxml.
Thanks `@fushi`_ for the PR
* *
@ -11,6 +12,8 @@
* *
.. _@fushi: https://github.com/fushi
3.0.2 3.0.2
===== =====
@ -35,7 +38,7 @@
enabled. This allows proper post mortem debugging for all applications enabled. This allows proper post mortem debugging for all applications
which have significant logic in their tearDown machinery (`#1890`_). Thanks which have significant logic in their tearDown machinery (`#1890`_). Thanks
`@mbyt`_ for the PR. `@mbyt`_ for the PR.
* Fix use of deprecated ``getfuncargvalue`` method in the internal doctest plugin. * Fix use of deprecated ``getfuncargvalue`` method in the internal doctest plugin.
Thanks `@ViviCoder`_ for the report (`#1898`_). Thanks `@ViviCoder`_ for the report (`#1898`_).

View File

@ -102,6 +102,8 @@ class _NodeReporter(object):
} }
if testreport.location[1] is not None: if testreport.location[1] is not None:
attrs["line"] = testreport.location[1] attrs["line"] = testreport.location[1]
if hasattr(testreport, "url"):
attrs["url"] = testreport.url
self.attrs = attrs self.attrs = attrs
def to_xml(self): def to_xml(self):

View File

@ -922,3 +922,28 @@ def test_global_properties(testdir):
actual[k] = v actual[k] = v
assert actual == expected 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"