@@ -130,6 +130,13 @@ class _TestInfo(object):
130130 # Possible test outcomes
131131 (SUCCESS , FAILURE , ERROR , SKIP ) = range (4 )
132132
133+ OUTCOME_ELEMENTS = {
134+ SUCCESS : None ,
135+ FAILURE : 'failure' ,
136+ ERROR : 'error' ,
137+ SKIP : 'skipped' ,
138+ }
139+
133140 def __init__ (self , test_result , test_method , outcome = SUCCESS , err = None , subTest = None ):
134141 self .test_result = test_result
135142 self .outcome = outcome
@@ -531,25 +538,39 @@ def _report_testcase(test_result, xml_testsuite, xml_document):
531538 testcase .setAttribute ('time' , '%.3f' % test_result .elapsed_time )
532539 testcase .setAttribute ('timestamp' , test_result .timestamp )
533540
534- if (test_result .outcome != test_result .SUCCESS ):
535- elem_name = ('failure' , 'error' , 'skipped' )[test_result .outcome - 1 ]
536- failure = xml_document .createElement (elem_name )
537- testcase .appendChild (failure )
538- if test_result .outcome != test_result .SKIP :
539- failure .setAttribute (
540- 'type' ,
541- test_result .test_exception_name
542- )
543- failure .setAttribute (
544- 'message' ,
545- test_result .test_exception_message
546- )
541+ if test_result .stdout :
542+ systemout = xml_document .createElement ('system-out' )
543+ testcase .appendChild (systemout )
544+
545+ _XMLTestResult ._createCDATAsections (xml_document , systemout ,
546+ test_result .stdout )
547+
548+ if test_result .stderr :
549+ systemerr = xml_document .createElement ('system-err' )
550+ testcase .appendChild (systemerr )
551+
552+ _XMLTestResult ._createCDATAsections (xml_document , systemerr ,
553+ test_result .stderr )
554+
555+
556+ result_elem_name = test_result .OUTCOME_ELEMENTS [test_result .outcome ]
557+
558+ if result_elem_name :
559+ result_elem = xml_document .createElement (result_elem_name )
560+ testcase .appendChild (result_elem )
561+
562+ result_elem .setAttribute (
563+ 'type' ,
564+ test_result .test_exception_name
565+ )
566+ result_elem .setAttribute (
567+ 'message' ,
568+ test_result .test_exception_message
569+ )
570+ if test_result .get_error_info ():
547571 error_info = safe_unicode (test_result .get_error_info ())
548572 _XMLTestResult ._createCDATAsections (
549- xml_document , failure , error_info )
550- else :
551- failure .setAttribute ('type' , 'skip' )
552- failure .setAttribute ('message' , test_result .test_exception_message )
573+ xml_document , result_elem , error_info )
553574
554575 if test_result .stdout :
555576 systemout = xml_document .createElement ('system-out' )
0 commit comments