diff --git a/source/api/ut_runner.pkb b/source/api/ut_runner.pkb index cf2e6b183..5c723c524 100644 --- a/source/api/ut_runner.pkb +++ b/source/api/ut_runner.pkb @@ -53,78 +53,83 @@ create or replace package body ut_runner is procedure run( a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is l_items_to_run ut_run; l_listener ut_event_listener; begin - ut_output_buffer.cleanup_buffer(); + begin + ut_output_buffer.cleanup_buffer(); + + ut_console_reporter_base.set_color_enabled(a_color_console); + if a_reporters is null or a_reporters.count = 0 then + l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter())); + else + l_listener := ut_event_listener(a_reporters); + end if; + l_items_to_run := ut_run( + ut_suite_manager.configure_execution_by_path(a_paths), + a_paths, + ut_utils.convert_collection(a_coverage_schemes), + to_ut_object_list(a_exclude_objects), + to_ut_object_list(a_include_objects), + set(a_source_file_mappings), + set(a_test_file_mappings) + ); + l_items_to_run.do_execute(l_listener); - ut_console_reporter_base.set_color_enabled(a_color_console); - if a_reporters is null or a_reporters.count = 0 then - l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter())); - else - l_listener := ut_event_listener(a_reporters); - end if; - l_items_to_run := ut_run( - ut_suite_manager.configure_execution_by_path(a_paths), - a_paths, - ut_utils.convert_collection(a_coverage_schemes), - to_ut_object_list(a_exclude_objects), - to_ut_object_list(a_include_objects), - set(a_source_file_mappings), - set(a_test_file_mappings) - ); - l_items_to_run.do_execute(l_listener); - - cleanup_temp_tables; - ut_output_buffer.close(l_listener.reporters); - exception - when others then cleanup_temp_tables; ut_output_buffer.close(l_listener.reporters); - dbms_output.put_line(dbms_utility.format_error_backtrace); - dbms_output.put_line(dbms_utility.format_error_stack); - raise; + exception + when others then + cleanup_temp_tables; + ut_output_buffer.close(l_listener.reporters); + dbms_output.put_line(dbms_utility.format_error_backtrace); + dbms_output.put_line(dbms_utility.format_error_stack); + raise; + end; + if a_fail_on_errors and l_items_to_run.result in (ut_utils.tr_failure, ut_utils.tr_error) then + raise_application_error(ut_utils.gc_some_tests_failed, 'Some tests failed'); + end if; end; procedure run( a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( a_paths, a_reporters, a_color_console, a_coverage_schemes, ut_file_mapper.build_file_mappings(a_source_files), ut_file_mapper.build_file_mappings(a_test_files), - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end; procedure run( a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())), a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end; procedure run( a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())), a_color_console, a_coverage_schemes, a_source_files, a_test_files, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end; @@ -132,52 +137,52 @@ create or replace package body ut_runner is procedure run( a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))), a_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end run; procedure run( a_path in varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))), a_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end run; procedure run( a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))), a_reporters, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end run; procedure run( a_path in varchar2, a_reporters in ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ) is begin run( ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema'))), a_reporters, a_color_console, a_coverage_schemes, a_source_files, a_test_files, - a_include_objects, a_exclude_objects + a_include_objects, a_exclude_objects, a_fail_on_errors ); end run; diff --git a/source/api/ut_runner.pks b/source/api/ut_runner.pks index 586c70d46..8d910196b 100644 --- a/source/api/ut_runner.pks +++ b/source/api/ut_runner.pks @@ -36,51 +36,51 @@ create or replace package ut_runner authid current_user is procedure run( a_path varchar2 := null, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); procedure run( a_path varchar2 := null, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); procedure run( a_path varchar2, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); procedure run( a_path varchar2, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); -- TODO - implementation to be changed procedure run( a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); procedure run( a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); -- TODO - implementation to be changed procedure run( a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); procedure run( a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false, a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list, - a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null + a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false ); end ut_runner; diff --git a/source/core/ut_utils.pks b/source/core/ut_utils.pks index d0d720c2c..308677bc7 100644 --- a/source/core/ut_utils.pks +++ b/source/core/ut_utils.pks @@ -79,6 +79,11 @@ create or replace package ut_utils authid definer is ex_invalid_rep_event_name exception; gc_invalid_rep_event_name constant pls_integer := -20211; pragma exception_init(ex_invalid_rep_event_name, -20211); + + -- Any of tests failed + ex_some_tests_failed exception; + gc_some_tests_failed constant pls_integer := -20213; + pragma exception_init(ex_some_tests_failed, -20213); gc_max_storage_varchar2_len constant integer := 4000;