File tree Expand file tree Collapse file tree 4 files changed +29
-2
lines changed Expand file tree Collapse file tree 4 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -208,6 +208,7 @@ Ross Lawley
208208Russel Winder
209209Ryan Wooden
210210Samuel Dion-Girardeau
211+ Samuel Searles-Bryant
211212Samuele Pedroni
212213Sankt Petersbug
213214Segev Finer
Original file line number Diff line number Diff line change 1+ Show XFail reason as part of JUnitXML message field.
Original file line number Diff line number Diff line change @@ -252,7 +252,14 @@ def append_error(self, report):
252252
253253 def append_skipped (self , report ):
254254 if hasattr (report , "wasxfail" ):
255- self ._add_simple (Junit .skipped , "expected test failure" , report .wasxfail )
255+ xfailreason = report .wasxfail
256+ if xfailreason .startswith ("reason: " ):
257+ xfailreason = xfailreason [8 :]
258+ self .append (
259+ Junit .skipped (
260+ "" , type = "pytest.xfail" , message = bin_xml_escape (xfailreason )
261+ )
262+ )
256263 else :
257264 filename , lineno , skipreason = report .longrepr
258265 if skipreason .startswith ("Skipped: " ):
Original file line number Diff line number Diff line change @@ -485,9 +485,27 @@ def test_xfail():
485485 tnode = node .find_first_by_tag ("testcase" )
486486 tnode .assert_attr (classname = "test_xfailure_function" , name = "test_xfail" )
487487 fnode = tnode .find_first_by_tag ("skipped" )
488- fnode .assert_attr (message = "expected test failure " )
488+ fnode .assert_attr (type = "pytest.xfail" , message = "42 " )
489489 # assert "ValueError" in fnode.toxml()
490490
491+ def test_xfailure_marker (self , testdir ):
492+ testdir .makepyfile (
493+ """
494+ import pytest
495+ @pytest.mark.xfail(reason="42")
496+ def test_xfail():
497+ assert False
498+ """
499+ )
500+ result , dom = runandparse (testdir )
501+ assert not result .ret
502+ node = dom .find_first_by_tag ("testsuite" )
503+ node .assert_attr (skipped = 1 , tests = 1 )
504+ tnode = node .find_first_by_tag ("testcase" )
505+ tnode .assert_attr (classname = "test_xfailure_marker" , name = "test_xfail" )
506+ fnode = tnode .find_first_by_tag ("skipped" )
507+ fnode .assert_attr (type = "pytest.xfail" , message = "42" )
508+
491509 def test_xfail_captures_output_once (self , testdir ):
492510 testdir .makepyfile (
493511 """
You can’t perform that action at this time.
0 commit comments