Skip to content

Commit e9219d8

Browse files
committed
implemented a way to fail if any test failed
1 parent 0f2c2d7 commit e9219d8

3 files changed

Lines changed: 58 additions & 48 deletions

File tree

source/api/ut_runner.pkb

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -53,131 +53,136 @@ create or replace package body ut_runner is
5353
procedure run(
5454
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
5555
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
56-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
56+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
5757
) is
5858
l_items_to_run ut_run;
5959
l_listener ut_event_listener;
6060
begin
61-
ut_output_buffer.cleanup_buffer();
61+
begin
62+
ut_output_buffer.cleanup_buffer();
63+
64+
ut_console_reporter_base.set_color_enabled(a_color_console);
65+
if a_reporters is null or a_reporters.count = 0 then
66+
l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter()));
67+
else
68+
l_listener := ut_event_listener(a_reporters);
69+
end if;
70+
l_items_to_run := ut_run(
71+
ut_suite_manager.configure_execution_by_path(a_paths),
72+
a_paths,
73+
ut_utils.convert_collection(a_coverage_schemes),
74+
to_ut_object_list(a_exclude_objects),
75+
to_ut_object_list(a_include_objects),
76+
set(a_source_file_mappings),
77+
set(a_test_file_mappings)
78+
);
79+
l_items_to_run.do_execute(l_listener);
6280

63-
ut_console_reporter_base.set_color_enabled(a_color_console);
64-
if a_reporters is null or a_reporters.count = 0 then
65-
l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter()));
66-
else
67-
l_listener := ut_event_listener(a_reporters);
68-
end if;
69-
l_items_to_run := ut_run(
70-
ut_suite_manager.configure_execution_by_path(a_paths),
71-
a_paths,
72-
ut_utils.convert_collection(a_coverage_schemes),
73-
to_ut_object_list(a_exclude_objects),
74-
to_ut_object_list(a_include_objects),
75-
set(a_source_file_mappings),
76-
set(a_test_file_mappings)
77-
);
78-
l_items_to_run.do_execute(l_listener);
79-
80-
cleanup_temp_tables;
81-
ut_output_buffer.close(l_listener.reporters);
82-
exception
83-
when others then
8481
cleanup_temp_tables;
8582
ut_output_buffer.close(l_listener.reporters);
86-
dbms_output.put_line(dbms_utility.format_error_backtrace);
87-
dbms_output.put_line(dbms_utility.format_error_stack);
88-
raise;
83+
exception
84+
when others then
85+
cleanup_temp_tables;
86+
ut_output_buffer.close(l_listener.reporters);
87+
dbms_output.put_line(dbms_utility.format_error_backtrace);
88+
dbms_output.put_line(dbms_utility.format_error_stack);
89+
raise;
90+
end;
91+
if a_fail_on_errors and l_items_to_run.result in (ut_utils.tr_failure, ut_utils.tr_error) then
92+
raise_application_error(ut_utils.gc_some_tests_failed, 'Some tests failed');
93+
end if;
8994
end;
9095

9196
procedure run(
9297
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
9398
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
94-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
99+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
95100
) is
96101
begin
97102
run(
98103
a_paths, a_reporters, a_color_console, a_coverage_schemes,
99104
ut_file_mapper.build_file_mappings(a_source_files),
100105
ut_file_mapper.build_file_mappings(a_test_files),
101-
a_include_objects, a_exclude_objects
106+
a_include_objects, a_exclude_objects, a_fail_on_errors
102107
);
103108
end;
104109

105110
procedure run(
106111
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
107112
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
108-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
113+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
109114
) is
110115
begin
111116
run(
112117
a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
113118
a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
114-
a_include_objects, a_exclude_objects
119+
a_include_objects, a_exclude_objects, a_fail_on_errors
115120
);
116121
end;
117122

118123
procedure run(
119124
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
120125
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
121-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
126+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
122127
) is
123128
begin
124129
run(
125130
a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
126131
a_color_console, a_coverage_schemes, a_source_files, a_test_files,
127-
a_include_objects, a_exclude_objects
132+
a_include_objects, a_exclude_objects, a_fail_on_errors
128133
);
129134
end;
130135

131136

132137
procedure run(
133138
a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
134139
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
135-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
140+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
136141
) is
137142
begin
138143
run(
139144
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
140145
a_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
141-
a_include_objects, a_exclude_objects
146+
a_include_objects, a_exclude_objects, a_fail_on_errors
142147
);
143148
end run;
144149

145150
procedure run(
146151
a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
147152
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
148-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
153+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
149154
) is
150155
begin
151156
run(
152157
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
153158
a_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
154-
a_include_objects, a_exclude_objects
159+
a_include_objects, a_exclude_objects, a_fail_on_errors
155160
);
156161
end run;
157162

158163
procedure run(
159164
a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
160165
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
161-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
166+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
162167
) is
163168
begin
164169
run(
165170
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
166171
a_reporters, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
167-
a_include_objects, a_exclude_objects
172+
a_include_objects, a_exclude_objects, a_fail_on_errors
168173
);
169174
end run;
170175

171176
procedure run(
172177
a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
173178
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
174-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
179+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
175180
) is
176181
begin
177182
run(
178183
ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
179184
a_reporters, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
180-
a_include_objects, a_exclude_objects
185+
a_include_objects, a_exclude_objects, a_fail_on_errors
181186
);
182187
end run;
183188

source/api/ut_runner.pks

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,51 +36,51 @@ create or replace package ut_runner authid current_user is
3636
procedure run(
3737
a_path varchar2 := null, a_reporter ut_reporter_base := null, a_color_console boolean := false,
3838
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
39-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
39+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
4040
);
4141

4242
procedure run(
4343
a_path varchar2 := null, a_reporter ut_reporter_base := null, a_color_console boolean := false,
4444
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
45-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
45+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
4646
);
4747

4848
procedure run(
4949
a_path varchar2, a_reporters ut_reporters, a_color_console boolean := false,
5050
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
51-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
51+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
5252
);
5353

5454
procedure run(
5555
a_path varchar2, a_reporters ut_reporters, a_color_console boolean := false,
5656
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
57-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
57+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
5858
);
5959

6060
-- TODO - implementation to be changed
6161
procedure run(
6262
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
6363
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
64-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
64+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
6565
);
6666

6767
procedure run(
6868
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
6969
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
70-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
70+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
7171
);
7272

7373
-- TODO - implementation to be changed
7474
procedure run(
7575
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
7676
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
77-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
77+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
7878
);
7979

8080
procedure run(
8181
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
8282
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
83-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
83+
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
8484
);
8585

8686
end ut_runner;

source/core/ut_utils.pks

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ create or replace package ut_utils authid definer is
7979
ex_invalid_rep_event_name exception;
8080
gc_invalid_rep_event_name constant pls_integer := -20211;
8181
pragma exception_init(ex_invalid_rep_event_name, -20211);
82+
83+
-- Any of tests failed
84+
ex_some_tests_failed exception;
85+
gc_some_tests_failed constant pls_integer := -20213;
86+
pragma exception_init(ex_some_tests_failed, -20213);
8287

8388

8489
gc_max_storage_varchar2_len constant integer := 4000;

0 commit comments

Comments
 (0)