@@ -19,15 +19,13 @@ create or replace type body ut_suite as
1919 constructor function ut_suite (
2020 self in out nocopy ut_suite , a_object_owner varchar2 := null, a_object_name varchar2, a_name varchar2, a_path varchar2, a_description varchar2 := null,
2121 a_rollback_type integer := null, a_ignore_flag boolean := false, a_before_all_proc_name varchar2 := null,
22- a_after_all_proc_name varchar2 := null, a_before_each_proc_name varchar2 := null, a_after_each_proc_name varchar2 := null
22+ a_after_all_proc_name varchar2 := null
2323 ) return self as result is
2424 begin
2525 self.self_type := $$plsql_unit;
2626 self.init(a_object_owner, a_object_name, a_name, a_description, a_path, a_rollback_type, a_ignore_flag);
2727 self.before_all := ut_executable(self, a_before_all_proc_name, ut_utils.gc_before_all);
28- self.before_each := ut_executable(self, a_before_each_proc_name, ut_utils.gc_before_each);
2928 self.items := ut_suite_items();
30- self.after_each := ut_executable(self, a_after_each_proc_name, ut_utils.gc_after_each);
3129 self.after_all := ut_executable(self, a_after_all_proc_name, ut_utils.gc_after_all);
3230 return;
3331 end;
@@ -37,18 +35,15 @@ create or replace type body ut_suite as
3735 begin
3836 l_is_valid :=
3937 ( not self.before_all.is_defined() or self.before_all.is_valid() ) and
40- ( not self.before_each.is_defined() or self.before_each.is_valid() ) and
41- ( not self.after_each.is_defined() or self.after_each.is_valid() ) and
4238 ( not self.after_all.is_defined() or self.after_all.is_valid() );
4339 return l_is_valid;
4440 end;
4541
4642 overriding member function do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_event_listener_base) return boolean is
4743 l_suite_savepoint varchar2(30);
4844 l_item_savepoint varchar2(30);
49- l_completed_without_errors boolean;
5045 l_suite_step_without_errors boolean;
51-
46+
5247 procedure do_fail(a_prefix varchar2) is
5348 l_results ut_assert_results := ut_assert_processor.get_asserts_results();
5449 begin
@@ -59,15 +54,15 @@ create or replace type body ut_suite as
5954 begin
6055 ut_utils.debug_log('ut_suite.execute');
6156 a_listener.fire_before_event(ut_utils.gc_suite,self);
62-
63- self.start_time := current_timestamp;
57+
58+ self.start_time := current_timestamp;
6459
6560 if self.get_ignore_flag() then
6661 self.result := ut_utils.tr_ignore;
6762 self.end_time := self.start_time;
6863 ut_utils.debug_log('ut_suite .execute - ignored');
6964 else
70-
65+
7166 if self.is_valid() then
7267
7368 l_suite_savepoint := self.create_savepoint_if_needed();
@@ -77,45 +72,19 @@ create or replace type body ut_suite as
7772
7873 if l_suite_step_without_errors then
7974 for i in 1 .. self.items.count loop
80- l_completed_without_errors := true;
81-
82- --savepoint
83- l_item_savepoint := self.items(i).create_savepoint_if_needed();
84-
85- --before each
86- --includes listener calls for before and after actions
87- l_completed_without_errors := self.before_each.do_execute(self, a_listener);
88-
89- -- execute the item (test or suite)
90- if l_completed_without_errors then
91- l_completed_without_errors := self.items(i).do_execute(a_listener);
92- else
93- self.items(i).fail(a_listener, 'Beforeach procedure failed:'||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
94- end if;
95-
96- --after each
97- --includes listener calls for before and after actions
98- --run afteeach even if a test raised an exception
99- l_completed_without_errors := self.after_each.do_execute(self, a_listener);
100- if not l_completed_without_errors then
101- self.put_warning('Aftereach procedure failed:'||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
102- end if;
103-
104- --rollback to savepoint
105- self.items(i).rollback_to_savepoint(l_item_savepoint);
106-
75+ self.items(i).do_execute(a_listener);
10776 end loop;
108-
109- l_suite_step_without_errors := self.after_all.do_execute(self, a_listener);
110- if not l_suite_step_without_errors then
111- self.put_warning('Afterall procedure failed: '||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
112- end if;
11377 else
11478 do_fail('Beforeall procedure failed: '||chr(10));
11579 end if;
11680
81+ l_suite_step_without_errors := self.after_all.do_execute(self, a_listener);
82+ if not l_suite_step_without_errors then
83+ self.put_warning('Afterall procedure failed: '||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
84+ end if;
85+
11786 self.rollback_to_savepoint(l_suite_savepoint);
118-
87+
11988 else
12089 do_fail(null);
12190 end if;
@@ -126,7 +95,7 @@ create or replace type body ut_suite as
12695 end if;
12796 a_listener.fire_after_event(ut_utils.gc_suite,self);
12897
129- return l_completed_without_errors ;
98+ return l_suite_step_without_errors ;
13099 end;
131100
132101end;
0 commit comments