@@ -37,7 +37,7 @@ create or replace type body ut_realtime_reporter is
3737 ) is
3838 begin
3939 total_number_of_tests := total_number_of_tests + 1;
40- self.print_start_node('test', a_test.path);
40+ self.print_start_node('test', 'id', a_test.path);
4141 self.print_node('executableType', a_test.item.executable_type);
4242 self.print_node('ownerName', a_test.item.owner_name);
4343 self.print_node('objectName', a_test.item.object_name);
@@ -53,7 +53,7 @@ create or replace type body ut_realtime_reporter is
5353 a_suite in ut_logical_suite
5454 ) is
5555 begin
56- self.print_start_node('suite', a_suite.path);
56+ self.print_start_node('suite', 'id', a_suite.path);
5757 self.print_node('name', a_suite.name);
5858 self.print_node('description', a_suite.description);
5959 <<suite_elements>>
@@ -67,18 +67,17 @@ create or replace type body ut_realtime_reporter is
6767 self.print_end_node('suite');
6868 end print_suite_elements;
6969 begin
70- self.print_xml_fragment( ut_utils.get_xml_header(a_run.client_character_set) );
71- self.print_start_node('report' );
72- self.print_start_node('preRun ');
70+ xml_header := ut_utils.get_xml_header(a_run.client_character_set);
71+ self.print_xml_fragment(xml_header );
72+ self.print_start_node('event', 'type', 'pre-run ');
7373 self.print_start_node('suites');
7474 <<items>>
7575 for i in 1 .. a_run.items.count loop
7676 print_suite_elements(treat(a_run.items(i) as ut_logical_suite));
7777 end loop items;
7878 self.print_end_node('suites');
7979 self.print_node('totalNumberOfTests', to_char(total_number_of_tests));
80- self.print_end_node('preRun');
81- self.print_start_node('runEvents');
80+ self.print_end_node('event');
8281 self.flush_print_buffer();
8382 end before_calling_run;
8483
@@ -87,8 +86,9 @@ create or replace type body ut_realtime_reporter is
8786 a_run in ut_run
8887 ) is
8988 begin
90- self.print_end_node('runEvents');
91- self.print_end_node('report');
89+ self.print_xml_fragment(xml_header);
90+ self.print_start_node('event', 'type', 'post-run');
91+ self.print_end_node('event');
9292 self.flush_print_buffer();
9393 end after_calling_run;
9494
@@ -97,8 +97,11 @@ create or replace type body ut_realtime_reporter is
9797 a_suite in ut_logical_suite
9898 ) is
9999 begin
100- self.print_start_node('startSuiteEvent', a_suite.path);
101- self.print_end_node('startSuiteEvent');
100+ self.print_xml_fragment(xml_header);
101+ self.print_start_node('event', 'type', 'pre-suite');
102+ self.print_start_node('suite', 'id', a_suite.path);
103+ self.print_end_node('suite');
104+ self.print_end_node('event');
102105 self.flush_print_buffer();
103106 end before_calling_suite;
104107
@@ -107,7 +110,9 @@ create or replace type body ut_realtime_reporter is
107110 a_suite in ut_logical_suite
108111 ) is
109112 begin
110- self.print_start_node('endSuiteEvent', a_suite.path);
113+ self.print_xml_fragment(xml_header);
114+ self.print_start_node('event', 'type', 'post-suite');
115+ self.print_start_node('suite', 'id', a_suite.path);
111116 self.print_node('startTime', to_char(a_suite.start_time, 'YYYY-MM-DD"T"HH24:MI:SS.FF6'));
112117 self.print_node('endTime', to_char(a_suite.end_time, 'YYYY-MM-DD"T"HH24:MI:SS.FF6'));
113118 self.print_node('executionTime', ut_utils.to_xml_number_format(a_suite.execution_time()));
@@ -120,7 +125,8 @@ create or replace type body ut_realtime_reporter is
120125 self.print_end_node('counter');
121126 self.print_cdata_node('errorStack', ut_utils.table_to_clob(a_suite.get_error_stack_traces()));
122127 self.print_cdata_node('serverOutput', a_suite.get_serveroutputs());
123- self.print_end_node('endSuiteEvent');
128+ self.print_end_node('suite');
129+ self.print_end_node('event');
124130 self.flush_print_buffer();
125131 end after_calling_suite;
126132
@@ -130,10 +136,13 @@ create or replace type body ut_realtime_reporter is
130136 ) is
131137 begin
132138 current_test_number := current_test_number + 1;
133- self.print_start_node('startTestEvent', a_test.path);
139+ self.print_xml_fragment(xml_header);
140+ self.print_start_node('event', 'type', 'pre-test');
141+ self.print_start_node('test', 'id', a_test.path);
134142 self.print_node('testNumber', to_char(current_test_number));
135143 self.print_node('totalNumberOfTests', to_char(total_number_of_tests));
136- self.print_end_node('startTestEvent');
144+ self.print_end_node('test');
145+ self.print_end_node('event');
137146 self.flush_print_buffer();
138147 end before_calling_test;
139148
@@ -142,7 +151,9 @@ create or replace type body ut_realtime_reporter is
142151 a_test in ut_test
143152 ) is
144153 begin
145- self.print_start_node('endTestEvent', a_test.path);
154+ self.print_xml_fragment(xml_header);
155+ self.print_start_node('event', 'type', 'post-test');
156+ self.print_start_node('test', 'id', a_test.path);
146157 self.print_node('testNumber', to_char(current_test_number));
147158 self.print_node('totalNumberOfTests', to_char(total_number_of_tests));
148159 self.print_node('startTime', to_char(a_test.start_time, 'YYYY-MM-DD"T"HH24:MI:SS.FF6'));
@@ -169,7 +180,8 @@ create or replace type body ut_realtime_reporter is
169180 end loop expectations;
170181 self.print_end_node('failedExpectations');
171182 end if;
172- self.print_end_node('endTestEvent');
183+ self.print_end_node('test');
184+ self.print_end_node('event');
173185 self.flush_print_buffer();
174186 end after_calling_test;
175187
@@ -179,16 +191,17 @@ create or replace type body ut_realtime_reporter is
179191 end get_description;
180192
181193 member procedure print_start_node(
182- self in out nocopy ut_realtime_reporter,
183- a_name in varchar2,
184- a_id in varchar2 default null
194+ self in out nocopy ut_realtime_reporter,
195+ a_node_name in varchar2,
196+ a_attr_name in varchar2 default null,
197+ a_attr_value in varchar2 default null
185198 ) is
186199 begin
187200 self.print_xml_fragment(
188- '<' || a_name
201+ '<' || a_node_name
189202 || case
190- when a_id is not null then
191- ' id ="' || dbms_xmlgen.convert(a_id ) || '"'
203+ when a_attr_name is not null and a_attr_value is not null then
204+ ' ' || a_attr_name || ' ="' || dbms_xmlgen.convert(a_attr_value ) || '"'
192205 end
193206 || '>',
194207 0, 1
@@ -201,9 +214,9 @@ create or replace type body ut_realtime_reporter is
201214 ) is
202215 begin
203216 self.print_xml_fragment('</' || a_name || '>', -1);
204- if a_name like '%Event ' then
217+ if a_name = 'event ' then
205218 -- force new line to make complete event a.s.a.p. visible in consuming session
206- self.print_xml_fragment(null );
219+ self.print_xml_fragment(' ' );
207220 end if;
208221 end print_end_node;
209222
0 commit comments