Skip to content

Commit 23f4038

Browse files
committed
always include output and info for testcases
1 parent ed3fb0b commit 23f4038

File tree

1 file changed

+38
-17
lines changed

1 file changed

+38
-17
lines changed

xmlrunner/result.py

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)