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

Skip to content

Commit 01ec495

Browse files
committed
Merge remote-tracking branch 'origin/develop' into feature/improve_cursor_comparison
2 parents ec5784b + 8de954b commit 01ec495

8 files changed

Lines changed: 74 additions & 13 deletions

File tree

source/core/types/ut_test.tpb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,21 @@ create or replace type body ut_test as
3030
self.item := ut_executable(self, a_name, ut_utils.gc_test_execute);
3131
self.after_test := ut_executable(self, a_after_test_proc_name, ut_utils.gc_after_test);
3232
self.after_each := ut_executable(self, a_after_each_proc_name, ut_utils.gc_after_each);
33+
self.all_expectations := ut_expectation_results();
34+
self.failed_expectations := ut_expectation_results();
3335
return;
3436
end;
3537

3638
member procedure set_beforeeach(self in out nocopy ut_test, a_before_each_proc_name varchar2) is
3739
begin
3840
self.before_each := ut_executable(self, a_before_each_proc_name, ut_utils.gc_before_each);
3941
end;
42+
4043
member procedure set_aftereach(self in out nocopy ut_test, a_after_each_proc_name varchar2) is
4144
begin
4245
self.after_each := ut_executable(self, a_after_each_proc_name, ut_utils.gc_after_each);
4346
end;
47+
4448
member function is_valid(self in out nocopy ut_test) return boolean is
4549
l_is_valid boolean;
4650
begin
@@ -114,8 +118,9 @@ create or replace type body ut_test as
114118
self.result := ut_utils.tr_error;
115119
end if;
116120
--expectation results need to be part of test results
117-
self.expectations_count := ut_expectation_processor.get_expectations_count();
121+
self.all_expectations := ut_expectation_processor.get_all_expectations();
118122
self.failed_expectations := ut_expectation_processor.get_failed_expectations();
123+
ut_expectation_processor.clear_expectations();
119124
self.results_count.set_counter_values(self.result);
120125
end;
121126

source/core/types/ut_test.tps

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,20 @@ create or replace type ut_test under ut_suite_item (
4040
*/
4141
after_each ut_executable,
4242
/**
43-
* The list of failed expectation results as well as database errors encountered while invoking
44-
* The test procedure and the before_test/after_test blocks
43+
* The list of all expectations results as well as database errors encountered while invoking
44+
* the test procedure and the before_test/after_test blocks
45+
*/
46+
all_expectations ut_expectation_results,
47+
48+
/**
49+
* The list of failed expectations results as well as database errors encountered while invoking
50+
* the test procedure and the before_test/after_test blocks
4551
*/
4652
failed_expectations ut_expectation_results,
4753
/**
48-
* The count of all expectations executed in the test
54+
* Holds information about error stacktrace from parent execution (suite)
55+
* Will get populated on exceptions in before-all calls
4956
*/
50-
expectations_count integer,
5157
parent_error_stack_trace varchar2(4000),
5258
constructor function ut_test(
5359
self in out nocopy ut_test, a_object_owner varchar2 := null, a_object_name varchar2, a_name varchar2, a_description varchar2 := null,

source/core/ut_expectation_processor.pkb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ create or replace package body ut_expectation_processor as
5252
g_expectations_called.delete;
5353
end;
5454

55-
function get_expectations_count return integer is
55+
function get_all_expectations return ut_expectation_results is
5656
begin
57-
return g_expectations_called.count;
58-
end;
57+
ut_utils.debug_log('ut_expectation_processor.get_all_expectations: g_expectations_called.count='||g_expectations_called.count);
58+
return g_expectations_called;
59+
end get_all_expectations;
5960

6061
function get_failed_expectations return ut_expectation_results is
6162
l_expectations_results ut_expectation_results := ut_expectation_results();
@@ -68,7 +69,6 @@ create or replace package body ut_expectation_processor as
6869
end if;
6970
end loop;
7071
ut_utils.debug_log('ut_expectation_processor.get_failed_expectations: l_expectations_results.count='||g_expectations_called.count);
71-
clear_expectations();
7272
return l_expectations_results;
7373
end get_failed_expectations;
7474

source/core/ut_expectation_processor.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ create or replace package ut_expectation_processor authid current_user as
2828

2929
procedure clear_expectations;
3030

31-
function get_expectations_count return integer;
31+
function get_all_expectations return ut_expectation_results;
3232

3333
function get_failed_expectations return ut_expectation_results;
3434

source/core/ut_utils.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ create or replace package ut_utils authid definer is
2121
*
2222
*/
2323

24-
gc_version constant varchar2(50) := 'v3.0.4.1488-develop';
24+
gc_version constant varchar2(50) := 'v3.0.4.1503-develop';
2525

2626
/* Constants: Event names */
2727
gc_run constant varchar2(12) := 'run';

source/reporters/ut_xunit_reporter.tpb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ create or replace type body ut_xunit_reporter is
2929

3030
function get_path(a_path_with_name varchar2, a_name varchar2) return varchar2 is
3131
begin
32-
return substr(a_path_with_name, 1, instr(a_path_with_name, '.' || a_name) - 1);
32+
return regexp_substr(a_path_with_name, '(.*)\.' ||a_name||'$',subexpression=>1);
3333
end;
3434

3535
procedure print_test_elements(a_test ut_test) is
3636
l_lines ut_varchar2_list;
3737
l_output clob;
3838
begin
3939
self.print_text('<testcase classname="' || dbms_xmlgen.convert(get_path(a_test.path, a_test.name)) || '" ' || ' assertions="' ||
40-
nvl(a_test.expectations_count,0) || '"' || self.get_common_item_attributes(a_test) || case when
40+
nvl(a_test.all_expectations.count,0) || '"' || self.get_common_item_attributes(a_test) || case when
4141
a_test.result != ut_utils.tr_success then
4242
' status="' || ut_utils.test_result_to_char(a_test.result) || '"' end || '>');
4343
if a_test.result = ut_utils.tr_disabled then

test/core/reporters/test_xunit_reporter.pkb

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,31 @@ create or replace package body test_xunit_reporter as
88

99
--%test(A test with <tag>)
1010
procedure test_do_stuff;
11+
1112
end;]';
1213
execute immediate q'[create or replace package body check_xunit_reporting is
1314
procedure test_do_stuff is
1415
begin
1516
ut3.ut.expect(1).to_equal(1);
1617
ut3.ut.expect(1).to_equal(2);
1718
end;
19+
20+
end;]';
21+
22+
execute immediate q'[create or replace package check_xunit_rep_suitepath is
23+
--%suitepath(core)
24+
--%suite(check_xunit_rep_suitepath)
25+
--%displayname(Check XUNIT Get path for suitepath)
26+
27+
--%test(check_xunit_rep_suitepath)
28+
--%displayname(Check XUNIT Get path for suitepath)
29+
procedure check_xunit_rep_suitepath;
30+
end;]';
31+
execute immediate q'[create or replace package body check_xunit_rep_suitepath is
32+
procedure check_xunit_rep_suitepath is
33+
begin
34+
ut3.ut.expect(1).to_equal(1);
35+
end;
1836
end;]';
1937
end;
2038

@@ -59,10 +77,36 @@ create or replace package body test_xunit_reporter as
5977
ut.expect(l_actual).to_be_like('%at "%.CHECK_XUNIT_REPORTING%", line %');
6078
end;
6179

80+
procedure check_classname_suite is
81+
l_results ut3.ut_varchar2_list;
82+
l_actual clob;
83+
begin
84+
--Act
85+
select *
86+
bulk collect into l_results
87+
from table(ut3.ut.run('check_xunit_reporting',ut3.ut_xunit_reporter()));
88+
l_actual := ut3.ut_utils.table_to_clob(l_results);
89+
--Assert
90+
ut.expect(l_actual).to_be_like('%testcase classname="check_xunit_reporting"%');
91+
end;
92+
93+
procedure check_classname_suitepath is
94+
l_results ut3.ut_varchar2_list;
95+
l_actual clob;
96+
begin
97+
--Act
98+
select *
99+
bulk collect into l_results
100+
from table(ut3.ut.run('check_xunit_rep_suitepath',ut3.ut_xunit_reporter()));
101+
l_actual := ut3.ut_utils.table_to_clob(l_results);
102+
--Assert
103+
ut.expect(l_actual).to_be_like('%testcase classname="core.check_xunit_rep_suitepath"%');
104+
end;
62105
procedure remove_test_package is
63106
pragma autonomous_transaction;
64107
begin
65108
execute immediate 'drop package check_xunit_reporting';
109+
execute immediate 'drop package check_xunit_rep_suitepath';
66110
end;
67111
end;
68112
/

test/core/reporters/test_xunit_reporter.pks

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ create or replace package test_xunit_reporter as
1515
--%test(Reports failed line of test)
1616
procedure reports_failed_line;
1717

18+
--%test(Check that classname is returned correct suite)
19+
procedure check_classname_suite;
20+
21+
--%test(Check that classname is returned correct suitepath)
22+
procedure check_classname_suitepath;
23+
1824
--%afterall
1925
procedure remove_test_package;
2026
end;

0 commit comments

Comments
 (0)