Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d6bd078

Browse files
committed
added error reporting on suite level
added output reporting on suite level
1 parent 761f89b commit d6bd078

1 file changed

Lines changed: 26 additions & 3 deletions

File tree

source/reporters/ut_xunit_reporter.tpb

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ create or replace type body ut_xunit_reporter is
3636
l_lines ut_varchar2_list;
3737
begin
3838
self.print_text('<testcase classname="' || get_path(a_test.path, a_test.name) || '" ' || ' assertions="' ||
39-
coalesce(cardinality(a_test.results), 0) || '"' || self.get_common_item_attributes(a_test) ||
40-
case when a_test.result != ut_utils.tr_success then' status="'||ut_utils.test_result_to_char(a_test.result)||'"' end ||
41-
'>');
39+
coalesce(cardinality(a_test.results), 0) || '"' || self.get_common_item_attributes(a_test) || case when
40+
a_test.result != ut_utils.tr_success then
41+
' status="' || ut_utils.test_result_to_char(a_test.result) || '"' end || '>');
4242
if a_test.result = ut_utils.tr_ignore then
4343
self.print_text('<skipped/>');
4444
end if;
@@ -78,6 +78,7 @@ create or replace type body ut_xunit_reporter is
7878
procedure print_suite_elements(a_suite ut_logical_suite, a_suite_id in out nocopy integer) is
7979
l_tests_count integer := a_suite.results_count.ignored_count + a_suite.results_count.success_count +
8080
a_suite.results_count.failure_count + a_suite.results_count.errored_count;
81+
l_suite ut_suite;
8182
begin
8283
a_suite_id := a_suite_id + 1;
8384
self.print_text('<testsuite tests="' || l_tests_count || '"' || ' id="' || a_suite_id || '"' || ' package="' ||
@@ -86,6 +87,28 @@ create or replace type body ut_xunit_reporter is
8687
-- TODO - decide if to use 'skipped' or 'disabled'
8788
-- <system-out/>
8889
-- <system-err/>
90+
if a_suite is of(ut_suite) then
91+
l_suite := treat(l_suite as ut_suite);
92+
93+
if l_suite.before_all.serveroutput is not null or l_suite.after_all.serveroutput is not null then
94+
self.print_text('<system-out>');
95+
self.print_text('<![CDATA[');
96+
self.print_text(trim(l_suite.before_all.serveroutput) ||
97+
trim(chr(10) || chr(10) || l_suite.after_all.serveroutput));
98+
self.print_text(']]>');
99+
self.print_text('</system-out>');
100+
end if;
101+
102+
if l_suite.before_all.error_stack is not null or l_suite.after_all.error_stack is not null then
103+
self.print_text('<system-err>');
104+
self.print_text('<![CDATA[');
105+
self.print_text(trim(l_suite.before_all.error_stack) ||
106+
trim(chr(10) || chr(10) || l_suite.after_all.error_stack));
107+
self.print_text(']]>');
108+
self.print_text('</system-err>');
109+
end if;
110+
end if;
111+
89112
for i in 1 .. a_suite.items.count loop
90113
if a_suite.items(i) is of(ut_test) then
91114
print_test_elements(treat(a_suite.items(i) as ut_test));

0 commit comments

Comments
 (0)