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

Skip to content

Commit e9e4b9e

Browse files
committed
Reorganized and cleaned up tests to have only one package used for coverage tests.
1 parent 09ab226 commit e9e4b9e

4 files changed

Lines changed: 56 additions & 81 deletions

File tree

test/ut3_tester_helper/coverage_helper.pkb

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@ create or replace package body coverage_helper is
2020
$end
2121
end;
2222

23-
function substitute_covered_package(
24-
a_text varchar2,
25-
a_substitution varchar2
26-
) return varchar2 is
23+
function substitute_covered_package( a_text varchar2, a_substitution varchar2 ) return varchar2 is
2724
begin
2825
return replace( replace( a_text, a_substitution, covered_package_name() ), upper(a_substitution), upper(covered_package_name()) );
2926
end;
@@ -126,39 +123,10 @@ create or replace package body coverage_helper is
126123
begin execute immediate q'[drop package ut3_develop.test_dummy_coverage_1]'; exception when others then null; end;
127124
end;
128125

129-
procedure create_coverage_pkg is
130-
pragma autonomous_transaction;
131-
begin
132-
execute immediate 'alter session set plsql_optimize_level=0';
133-
execute immediate q'[create or replace package coverage_pkg as
134-
function run_some_branching_code(a_input integer) return integer;
135-
end;]';
136-
execute immediate q'[create or replace package body coverage_pkg as
137-
function run_some_branching_code(a_input integer) return integer is
138-
l_result integer;
139-
begin
140-
if a_input = 1 then return -1; elsif a_input = 2 then return 0;
141-
else
142-
return a_input;
143-
end if;
144-
end;
145-
end;]';
146-
execute immediate 'grant debug on coverage_pkg to ut3$user#';
147-
end;
148-
149-
procedure drop_coverage_pkg is
150-
pragma autonomous_transaction;
151-
begin
152-
execute immediate q'[drop package coverage_pkg]';
153-
end;
154-
155-
156-
157126
procedure run_standalone_coverage(a_coverage_run_id raw, a_input integer) is
158-
x integer;
159127
begin
160128
ut3_develop.ut_runner.coverage_start(a_coverage_run_id);
161-
execute immediate 'begin :x := coverage_pkg.run_some_branching_code(:a_input); end;' using out x, in a_input;
129+
execute immediate 'begin ut3_develop.'||covered_package_name||'.do_stuff(:a_input); end;' using in a_input;
162130
ut3_develop.ut_runner.coverage_stop();
163131
end;
164132

test/ut3_tester_helper/coverage_helper.pks

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ create or replace package coverage_helper is
44

55
function covered_package_name return varchar2;
66

7-
function substitute_covered_package(
8-
a_text varchar2,
9-
a_substitution varchar2 := '{p}'
10-
) return varchar2;
7+
function substitute_covered_package( a_text varchar2, a_substitution varchar2 := '{p}' ) return varchar2;
118

129
procedure set_develop_mode;
1310

@@ -20,9 +17,6 @@ create or replace package coverage_helper is
2017
procedure run_standalone_coverage(a_coverage_run_id raw, a_input integer);
2118
procedure run_coverage_job(a_coverage_run_id raw, a_input integer);
2219

23-
procedure create_coverage_pkg;
24-
procedure drop_coverage_pkg;
25-
2620
function run_tests_as_job( a_run_command varchar2 ) return clob;
2721
function run_code_as_job( a_plsql_block varchar2 ) return clob;
2822
procedure create_test_results_table;

test/ut3_user/reporters/test_coverage/test_coverage_standalone.pkb

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,66 @@
11
create or replace package body test_coverage_standalone is
22

3-
procedure coverage_without_ut_run is
4-
l_coverage_run_id raw(32) := sys_guid();
5-
l_actual ut3_develop.ut_varchar2_list;
3+
function run_coverage_twice(a_overage_run_id raw, a_object_name varchar2) return clob is
64
l_expected clob;
75
l_block_cov clob;
6+
l_file_path varchar2(250);
87
begin
8+
l_file_path := 'ut3_develop.'||a_object_name;
99
--Arrange
1010
if ut3_tester_helper.coverage_helper.block_coverage_available then
11-
l_block_cov := '%<line number="5" hits="4" branch="true" condition-coverage="67% (2/3)"/>';
11+
l_block_cov := '<line number="4" hits="5" branch="true" condition-coverage="67% (2/3)"/>';
1212
else
13-
l_block_cov := '%<line number="5" hits="4" branch="false"/>';
13+
l_block_cov := '<line number="4" hits="5" branch="false"/>';
1414
end if;
15-
l_expected := '%<source>ut3_tester_helper.coverage_pkg</source>' ||
16-
'%<package name="COVERAGE_PKG" ' ||
17-
'%<class name="COVERAGE_PKG" filename="ut3_tester_helper.coverage_pkg"' ||
18-
'%<lines>' ||
19-
l_block_cov ||
20-
'%<line number="7" hits="1" branch="false"/>%';
21-
--Act
22-
ut3_tester_helper.coverage_helper.run_coverage_job(l_coverage_run_id, 1);
23-
ut3_tester_helper.coverage_helper.run_coverage_job(l_coverage_run_id, 3);
15+
l_expected :=
16+
q'[<?xml version="1.0"?>
17+
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
18+
<coverage line-rate="0" branch-rate="0.0" lines-covered="2" lines-valid="2" branches-covered="0" branches-valid="0" complexity="0" version="1" timestamp="%">
19+
<sources>
20+
<source>]'||l_file_path||q'[</source>
21+
</sources>
22+
<packages>
23+
<package name="]'||upper(a_object_name)||q'[" line-rate="0.0" branch-rate="0.0" complexity="0.0">
24+
<class name="]'||upper(a_object_name)||q'[" filename="]'||l_file_path||q'[" line-rate="0.0" branch-rate="0.0" complexity="0.0">
25+
<lines>
26+
]'||l_block_cov||q'[
27+
<line number="6" hits="1" branch="false"/>
28+
</lines>
29+
</class>
30+
</package>
31+
</packages>
32+
</coverage>]';
33+
--Act
34+
ut3_tester_helper.coverage_helper.run_coverage_job(a_overage_run_id, 1);
35+
ut3_tester_helper.coverage_helper.run_coverage_job(a_overage_run_id, 3);
36+
return l_expected;
37+
end;
38+
39+
procedure coverage_without_ut_run is
40+
l_coverage_run_id raw(32) := sys_guid();
41+
l_actual ut3_develop.ut_varchar2_list;
42+
l_expected clob;
43+
l_name varchar2(250);
44+
begin
45+
l_name := ut3_tester_helper.coverage_helper.covered_package_name;
46+
47+
--Arrange and Act
48+
l_expected := run_coverage_twice(l_coverage_run_id, l_name);
2449

25-
--Assert
2650
select *
2751
bulk collect into l_actual
2852
from
2953
table (
3054
ut3_develop.ut_coverage_cobertura_reporter( ).get_report(
3155
ut3_develop.ut_coverage_options(
3256
coverage_run_id => l_coverage_run_id,
33-
include_objects => ut3_develop.ut_varchar2_rows('COVERAGE_PKG'),
34-
schema_names => ut3_develop.ut_varchar2_rows('UT3_TESTER_HELPER')
57+
include_objects => ut3_develop.ut_varchar2_rows(l_name),
58+
schema_names => ut3_develop.ut_varchar2_rows('UT3_DEVELOP')
3559
)
3660
)
3761
);
62+
63+
--Assert
3864
ut.expect(ut3_tester_helper.main_helper.table_to_clob(l_actual)).to_be_like( l_expected );
3965
end;
4066

@@ -43,35 +69,25 @@ create or replace package body test_coverage_standalone is
4369
l_coverage_cursor sys_refcursor;
4470
l_actual ut3_develop.ut_varchar2_list;
4571
l_expected clob;
46-
l_block_cov clob;
72+
l_name varchar2(250);
4773
begin
48-
--Arrange
49-
if ut3_tester_helper.coverage_helper.block_coverage_available then
50-
l_block_cov := '%<line number="5" hits="4" branch="true" condition-coverage="67% (2/3)"/>';
51-
else
52-
l_block_cov := '%<line number="5" hits="4" branch="false"/>';
53-
end if;
54-
l_expected := '%<source>ut3_tester_helper.coverage_pkg</source>' ||
55-
'%<package name="COVERAGE_PKG" ' ||
56-
'%<class name="COVERAGE_PKG" filename="ut3_tester_helper.coverage_pkg"' ||
57-
'%<lines>' ||
58-
l_block_cov ||
59-
'%<line number="7" hits="1" branch="false"/>%';
60-
--Act
61-
ut3_tester_helper.coverage_helper.run_coverage_job(l_coverage_run_id, 1);
62-
ut3_tester_helper.coverage_helper.run_coverage_job(l_coverage_run_id, 3);
74+
l_name := ut3_tester_helper.coverage_helper.covered_package_name;
75+
76+
--Arrange and Act
77+
l_expected := run_coverage_twice(l_coverage_run_id, l_name);
6378

64-
--Assert
6579
l_coverage_cursor :=
6680
ut3_develop.ut_coverage_cobertura_reporter( ).get_report_cursor(
6781
ut3_develop.ut_coverage_options(
6882
coverage_run_id => l_coverage_run_id,
69-
include_objects => ut3_develop.ut_varchar2_rows('COVERAGE_PKG'),
70-
schema_names => ut3_develop.ut_varchar2_rows('UT3_TESTER_HELPER')
83+
include_objects => ut3_develop.ut_varchar2_rows(l_name),
84+
schema_names => ut3_develop.ut_varchar2_rows('UT3_DEVELOP')
7185
)
7286
);
7387
fetch l_coverage_cursor bulk collect into l_actual;
7488
close l_coverage_cursor;
89+
90+
--Assert
7591
ut.expect(ut3_tester_helper.main_helper.table_to_clob(l_actual)).to_be_like( l_expected );
7692
end;
7793

test/ut3_user/reporters/test_coverage/test_coverage_standalone.pks

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
create or replace package test_coverage_standalone authid current_user is
22

33
--%suite
4-
--%suitepath(utplsql.test_user.reporters)
5-
6-
--%beforeall(ut3_tester_helper.coverage_helper.create_coverage_pkg)
7-
--%afterall(ut3_tester_helper.coverage_helper.drop_coverage_pkg)
4+
--%suitepath(utplsql.test_user.reporters.test_coverage)
85

96
--%test(Coverage can be invoked standalone in multiple sessions and a combined report can be produced at the end)
107
procedure coverage_without_ut_run;

0 commit comments

Comments
 (0)