@@ -210,6 +210,7 @@ def startTestRun(self):
210210 'num_passed' : 0 ,
211211 'num_failed' : 0 ,
212212 'num_skipped' : 0 ,
213+ 'num_expected_failures' : 0 ,
213214 'execution_time' : None }
214215 self .suite_number = int (sorted (self .results ['suites' ].keys ())[- 1 ]) + 1 if len (self .results ['suites' ]) else 0
215216 self .case_number = 0
@@ -264,12 +265,14 @@ def startTest(self, test):
264265 'num_passed' : 0 ,
265266 'num_failed' : 0 ,
266267 'num_skipped' : 0 ,
268+ 'num_expected_failures' : 0 ,
267269 'execution_time' : None }
268270 self .suite_number += 1
269271 self .num_cases = 0
270272 self .num_passed = 0
271273 self .num_failed = 0
272274 self .num_skipped = 0
275+ self .num_expected_failures = 0
273276 self .results ['suites' ][self .suite_map [self .suite ]]['cases' ][self .case_number ] = {
274277 'name' : self .case ,
275278 'method' : test ._testMethodName ,
@@ -306,10 +309,12 @@ def stopTest(self, test):
306309 self .results ['suites' ][self .suite_map [self .suite ]]['num_passed' ] = self .num_passed
307310 self .results ['suites' ][self .suite_map [self .suite ]]['num_failed' ] = self .num_failed
308311 self .results ['suites' ][self .suite_map [self .suite ]]['num_skipped' ] = self .num_skipped
312+ self .results ['suites' ][self .suite_map [self .suite ]]['num_expected_failures' ] = self .num_expected_failures
309313 self .results ['suites' ][self .suite_map [self .suite ]]['cases' ][self .current_case_number ]['execution_time' ]= format (self .execution_time , '.%sf' % CustomTextTestResult ._execution_time_significant_digits )
310314 self .results ['num_passed' ] += self .num_passed
311315 self .results ['num_failed' ] += self .num_failed
312316 self .results ['num_skipped' ] += self .num_skipped
317+ self .results ['num_expected_failures' ] += self .num_expected_failures
313318 self .case_number += 1
314319
315320 def print_error_string (self , err ):
@@ -375,7 +380,7 @@ def addExpectedFailure(self, test, err):
375380 self .stream .writeln ("EXPECTED FAILURE" )
376381 self .stream .flush ()
377382 self .results ['suites' ][self .suite_map [self .suite ]]['cases' ][self .current_case_number ]['result' ] = 'expected_failure'
378- self .num_passed += 1
383+ self .num_expected_failures += 1
379384 self .addScreenshots (test )
380385
381386 def addUnexpectedSuccess (self , test ):
@@ -406,6 +411,7 @@ def printOverallSuiteResults(self, r):
406411 'passed' : r [x ]['num_passed' ],
407412 'failed' : r [x ]['num_failed' ],
408413 'skipped' : r [x ]['num_skipped' ],
414+ 'expected_failures' : r [x ]['num_expected_failures' ],
409415 'percentage' : float (r [x ]['num_passed' ])/ (r [x ]['num_passed' ] + r [x ]['num_failed' ]) * 100 if (r [x ]['num_passed' ] + r [x ]['num_failed' ]) > 0 else 0 ,
410416 'time' : r [x ]['execution_time' ]})
411417 total_suites_passed = len ([x for x in data if not x ['failed' ]])
0 commit comments