@@ -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
0 commit comments