@@ -28,13 +28,8 @@ create or replace type body ut_tfs_junit_reporter is
2828 end;
2929
3030 member procedure junit_version_one(self in out nocopy ut_tfs_junit_reporter,a_run in ut_run) is
31- c_cdata_start_tag constant varchar2(30) := '<![CDATA[';
32- c_cdata_end_tag constant varchar2(10) := ']]>';
33- c_cdata_end_tag_wrap constant varchar2(30) := ']]'||c_cdata_end_tag||c_cdata_start_tag||'>';
3431 l_suite_id integer := 0;
35- l_tests_count integer := a_run.results_count.disabled_count + a_run.results_count.success_count +
36- a_run.results_count.failure_count + a_run.results_count.errored_count;
37-
32+
3833 function get_common_suite_attributes(a_item ut_suite_item) return varchar2 is
3934 begin
4035 return ' errors="' ||a_item.results_count.errored_count || '"' ||
@@ -71,14 +66,12 @@ create or replace type body ut_tfs_junit_reporter is
7166
7267 if a_test.result = ut_utils.gc_error then
7368 ut_utils.append_to_list( l_results, '<error type="error" message="Error while executing '||a_test.name||'">');
74- ut_utils.append_to_list( l_results, c_cdata_start_tag);
75- ut_utils.append_to_list( l_results, replace( ut_utils.table_to_clob(a_test.get_error_stack_traces()), c_cdata_end_tag, c_cdata_end_tag_wrap ));
76- ut_utils.append_to_list( l_results, c_cdata_end_tag);
69+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( a_test.get_error_stack_traces() ) ) );
7770 ut_utils.append_to_list( l_results, '</error>');
7871 -- Do not count error as failure
7972 elsif a_test.result = ut_utils.gc_failure then
8073 ut_utils.append_to_list( l_results, '<failure type="failure" message="Test '||a_test.name||' failed">');
81- ut_utils.append_to_list( l_results, a_test.get_failed_expectations_cdata( ) );
74+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( a_test.get_failed_expectation_lines() ) );
8275 ut_utils.append_to_list( l_results, '</failure>');
8376 end if;
8477
@@ -102,43 +95,39 @@ create or replace type body ut_tfs_junit_reporter is
10295 end if;
10396 end loop;
10497
105- if a_suite is of(ut_suite) then
106- a_suite_id := a_suite_id + 1;
107- self.print_text('<testsuite tests="' || l_tests_count || '"' || ' id="' || a_suite_id || '"' || ' package="' ||
108- dbms_xmlgen.convert(a_suite.path) || '" ' || get_common_suite_attributes(a_suite) || '>');
109- self.print_text('<properties/>');
110- for i in 1 .. a_suite.items.count loop
111- if a_suite.items(i) is of(ut_test) then
112- print_test_results(treat(a_suite.items(i) as ut_test));
113- end if;
114- end loop;
115- l_suite := treat(a_suite as ut_suite);
116- l_outputs := l_suite.get_serveroutputs();
117- if l_outputs is not null and l_outputs != empty_clob() then
118- ut_utils.append_to_list( l_results, '<system-out>');
119- ut_utils.append_to_list( l_results, c_cdata_start_tag);
120- ut_utils.append_to_list( l_results, replace( l_outputs, c_cdata_end_tag, c_cdata_end_tag_wrap ) );
121- ut_utils.append_to_list( l_results, c_cdata_end_tag);
122- ut_utils.append_to_list( l_results, '</system-out>');
123- else
124- ut_utils.append_to_list( l_results, '<system-out/>');
125- end if;
98+ if a_suite is of(ut_suite) then
99+ a_suite_id := a_suite_id + 1;
100+ self.print_text('<testsuite tests="' || l_tests_count || '"' || ' id="' || a_suite_id || '"' || ' package="' ||
101+ dbms_xmlgen.convert(a_suite.path) || '" ' || get_common_suite_attributes(a_suite) || '>');
102+ self.print_text('<properties/>');
103+ for i in 1 .. a_suite.items.count loop
104+ if a_suite.items(i) is of(ut_test) then
105+ print_test_results(treat(a_suite.items(i) as ut_test));
106+ end if;
107+ end loop;
108+ l_suite := treat(a_suite as ut_suite);
109+ l_outputs := l_suite.get_serveroutputs();
110+ if l_outputs is not null and l_outputs != empty_clob() then
111+ ut_utils.append_to_list( l_results, '<system-out>');
112+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( l_suite.get_serveroutputs() ) );
113+ ut_utils.append_to_list( l_results, '</system-out>');
114+ else
115+ ut_utils.append_to_list( l_results, '<system-out/>');
116+ end if;
126117
127- l_errors := l_suite.get_error_stack_traces();
128- if l_errors is not empty then
129- ut_utils.append_to_list( l_results, '<system-err>');
130- ut_utils.append_to_list( l_results, c_cdata_start_tag);
131- ut_utils.append_to_list( l_results, replace( ut_utils.table_to_clob(l_errors), c_cdata_end_tag, c_cdata_end_tag_wrap ) );
132- ut_utils.append_to_list( l_results, c_cdata_end_tag);
133- ut_utils.append_to_list( l_results, '</system-err>');
134- else
135- ut_utils.append_to_list( l_results, '<system-err/>');
136- end if;
137- ut_utils.append_to_list( l_results, '</testsuite>');
118+ l_errors := l_suite.get_error_stack_traces();
119+ if l_errors is not empty then
120+ ut_utils.append_to_list( l_results, '<system-err>');
121+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( l_errors ) ) );
122+ ut_utils.append_to_list( l_results, '</system-err>');
123+ else
124+ ut_utils.append_to_list( l_results, '<system-err/>');
125+ end if;
126+ ut_utils.append_to_list( l_results, '</testsuite>');
138127
139- self.print_text_lines(l_results);
128+ self.print_text_lines(l_results);
140129 end if;
141- end;
130+ end;
142131
143132 begin
144133 l_suite_id := 0;
0 commit comments