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

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 6 additions & 16 deletions source/core/types/ut_logical_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -62,23 +62,13 @@ create or replace type body ut_logical_suite as
a_listener.fire_before_event(ut_utils.gc_suite,self);
self.start_time := current_timestamp;

if self.get_disabled_flag() then
self.result := ut_utils.tr_disabled;
self.end_time := self.start_time;
ut_utils.debug_log('ut_logical_suite.execute - disabled');
else

self.start_time := current_timestamp;

for i in 1 .. self.items.count loop
-- execute the item (test or suite)
self.items(i).do_execute(a_listener);
end loop;

self.calc_execution_result();
self.end_time := current_timestamp;
for i in 1 .. self.items.count loop
-- execute the item (test or suite)
self.items(i).do_execute(a_listener);
end loop;

end if;
self.calc_execution_result();
self.end_time := current_timestamp;

a_listener.fire_after_event(ut_utils.gc_suite,self);

Expand Down
11 changes: 5 additions & 6 deletions source/core/types/ut_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,9 @@ create or replace type body ut_suite as
self.start_time := current_timestamp;

if self.get_disabled_flag() then
self.result := ut_utils.tr_disabled;
self.end_time := self.start_time;
for i in 1 .. self.items.count loop
self.items(i).do_execute(a_listener);
end loop;
ut_utils.debug_log('ut_suite.execute - disabled');
else

Expand Down Expand Up @@ -87,11 +88,9 @@ create or replace type body ut_suite as
else
propagate_error(ut_utils.table_to_clob(self.get_error_stack_traces()));
end if;

self.calc_execution_result();
self.end_time := current_timestamp;

end if;
self.calc_execution_result();
self.end_time := current_timestamp;
a_listener.fire_after_event(ut_utils.gc_suite,self);

return l_suite_step_without_errors;
Expand Down
4 changes: 1 addition & 3 deletions source/core/ut_suite_manager.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ create or replace package body ut_suite_manager is
,a_description => l_displayname
,a_path => l_suite.path || '.' || l_proc_name
,a_rollback_type => l_rollback_type
,a_disabled_flag => l_proc_annotations.exists('disabled')
,a_disabled_flag => l_annotation_data.package_annotations.exists('disabled') or l_proc_annotations.exists('disabled')
,a_before_test_proc_name => l_beforetest_procedure
,a_after_test_proc_name => l_aftertest_procedure
,a_before_each_proc_name => l_default_setup_proc
Expand Down Expand Up @@ -416,8 +416,6 @@ create or replace package body ut_suite_manager is
l_item_name varchar2(32767);

begin
a_suite.set_disabled_flag(false);

if a_path is not null and a_suite is not null and a_suite is of (ut_logical_suite) then
l_suite := treat(a_suite as ut_logical_suite);

Expand Down
52 changes: 31 additions & 21 deletions tests/ut_test_suite/ut_test_suite.DisabledFlagSkipSuite.sql
Original file line number Diff line number Diff line change
@@ -1,34 +1,44 @@
PROMPT Disable whole suite by disabled flag

--Arrange
create or replace package test_disabled_suite as
--%suite
--%disabled
gv_glob_val number := 0;
--%beforeall
procedure before_all;
--%test
procedure test1;
--%test
procedure test2;
end;
/

declare
l_suite ut_logical_suite;
l_test ut_test;
l_parsing_result ut_annotations.typ_annotated_package;
l_expected ut_annotations.typ_annotated_package;
l_ann_param ut_annotations.typ_annotation_param;
l_cnt number;
l_listener ut_event_listener := ut_event_listener(ut_reporters());
l_lines ut_varchar2_list;
l_results clob;
begin

delete from ut$test_table;

l_test := ut_test(a_object_name => 'ut_transaction_control',a_name => 'test', a_rollback_type => ut_utils.gc_rollback_auto);
l_suite := ut_suite (a_description => 'Suite name', a_name => 'UT_TRANSACTION_CONTROL', a_object_name => 'UT_TRANSACTION_CONTROL', a_rollback_type => ut_utils.gc_rollback_auto,a_path => 'ut_transaction_control');
l_suite.add_item(l_test);
l_suite.set_disabled_flag(true);

--Act
l_suite.do_execute(l_listener);
select * bulk collect into l_lines from table(ut.run('test_disabled_suite'));

ut_expectation_processor.clear_expectations;
l_results := ut_utils.table_to_clob(l_lines);

--Assert
ut.expect(ut_transaction_control.count_rows('t')).to_equal(0);
ut.expect(l_results).to_be_like('%test1 [0 sec] (IGNORED)%');
ut.expect(l_results).to_be_like('%test2 [0 sec] (IGNORED)%');
ut.expect(l_results).to_be_like('%2 tests, 0 failed, 0 errored, 2 disabled, 0 warning(s)%');

if ut_expectation_processor.get_status = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line(
xmltype(
anydata.convertcollection(
ut_expectation_processor.get_expectations_results()
)
).getclobval()
);
end if;

end;
/

drop package test_disabled_suite
/