File tree 4 files changed +29
-2
lines changed 4 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -208,6 +208,7 @@ Ross Lawley
208
208
Russel Winder
209
209
Ryan Wooden
210
210
Samuel Dion-Girardeau
211
+ Samuel Searles-Bryant
211
212
Samuele Pedroni
212
213
Sankt Petersbug
213
214
Segev 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):
252
252
253
253
def append_skipped (self , report ):
254
254
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
+ )
256
263
else :
257
264
filename , lineno , skipreason = report .longrepr
258
265
if skipreason .startswith ("Skipped: " ):
Original file line number Diff line number Diff line change @@ -485,9 +485,27 @@ def test_xfail():
485
485
tnode = node .find_first_by_tag ("testcase" )
486
486
tnode .assert_attr (classname = "test_xfailure_function" , name = "test_xfail" )
487
487
fnode = tnode .find_first_by_tag ("skipped" )
488
- fnode .assert_attr (message = "expected test failure " )
488
+ fnode .assert_attr (type = "pytest.xfail" , message = "42 " )
489
489
# assert "ValueError" in fnode.toxml()
490
490
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
+
491
509
def test_xfail_captures_output_once (self , testdir ):
492
510
testdir .makepyfile (
493
511
"""
You can’t perform that action at this time.
0 commit comments