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

Skip to content

Commit e570e48

Browse files
produce an XML document for each event resulting in a new output structure
1 parent 290ca30 commit e570e48

1 file changed

Lines changed: 38 additions & 25 deletions

File tree

source/reporters/ut_realtime_reporter.tpb

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

Comments
 (0)