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