@@ -53,130 +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;
60- l_coverage_options ut_coverage_options;
6160 begin
62- 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);
6380
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_coverage_options := ut_coverage_options(
71- schema_names => a_coverage_schemes,
72- exclude_objects => to_ut_object_list(a_exclude_objects),
73- include_objects => to_ut_object_list(a_include_objects),
74- file_mappings => set(a_source_file_mappings)
75- );
76- l_items_to_run := ut_run( ut_suite_manager.configure_execution_by_path(a_paths), a_paths, l_coverage_options, set(a_test_file_mappings) );
77- l_items_to_run.do_execute(l_listener);
78-
79- cleanup_temp_tables;
80- ut_output_buffer.close(l_listener.reporters);
81- exception
82- when others then
8381 cleanup_temp_tables;
8482 ut_output_buffer.close(l_listener.reporters);
85- dbms_output.put_line(dbms_utility.format_error_backtrace);
86- dbms_output.put_line(dbms_utility.format_error_stack);
87- 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;
8894 end;
8995
9096 procedure run(
9197 a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
9298 a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
93- 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
94100 ) is
95101 begin
96102 run(
97103 a_paths, a_reporters, a_color_console, a_coverage_schemes,
98104 ut_file_mapper.build_file_mappings(a_source_files),
99105 ut_file_mapper.build_file_mappings(a_test_files),
100- a_include_objects, a_exclude_objects
106+ a_include_objects, a_exclude_objects, a_fail_on_errors
101107 );
102108 end;
103109
104110 procedure run(
105111 a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
106112 a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
107- 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
108114 ) is
109115 begin
110116 run(
111117 a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
112118 a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
113- a_include_objects, a_exclude_objects
119+ a_include_objects, a_exclude_objects, a_fail_on_errors
114120 );
115121 end;
116122
117123 procedure run(
118124 a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
119125 a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
120- 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
121127 ) is
122128 begin
123129 run(
124130 a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
125131 a_color_console, a_coverage_schemes, a_source_files, a_test_files,
126- a_include_objects, a_exclude_objects
132+ a_include_objects, a_exclude_objects, a_fail_on_errors
127133 );
128134 end;
129135
130136
131137 procedure run(
132138 a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
133139 a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
134- 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
135141 ) is
136142 begin
137143 run(
138144 ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
139145 a_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
140- a_include_objects, a_exclude_objects
146+ a_include_objects, a_exclude_objects, a_fail_on_errors
141147 );
142148 end run;
143149
144150 procedure run(
145151 a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
146152 a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
147- 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
148154 ) is
149155 begin
150156 run(
151157 ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
152158 a_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
153- a_include_objects, a_exclude_objects
159+ a_include_objects, a_exclude_objects, a_fail_on_errors
154160 );
155161 end run;
156162
157163 procedure run(
158164 a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
159165 a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
160- 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
161167 ) is
162168 begin
163169 run(
164170 ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
165171 a_reporters, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
166- a_include_objects, a_exclude_objects
172+ a_include_objects, a_exclude_objects, a_fail_on_errors
167173 );
168174 end run;
169175
170176 procedure run(
171177 a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false,
172178 a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
173- 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
174180 ) is
175181 begin
176182 run(
177183 ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))),
178184 a_reporters, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
179- a_include_objects, a_exclude_objects
185+ a_include_objects, a_exclude_objects, a_fail_on_errors
180186 );
181187 end run;
182188
0 commit comments