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

Skip to content

Commit 0a2f478

Browse files
committed
Improved coverage collection scope and stability on self-tests for utPLSQL
1 parent df31fba commit 0a2f478

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

test/ut3_tester_helper/coverage_helper.pkb

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ create or replace package body coverage_helper is
341341
e_exists exception;
342342
pragma exception_init ( e_exists, -955 );
343343
begin
344-
execute immediate 'create table test_results (text varchar2(4000))';
344+
execute immediate 'create table test_results (id integer, text varchar2(4000))';
345345
exception
346346
when e_exists then
347347
null;
@@ -368,9 +368,10 @@ create or replace package body coverage_helper is
368368
declare
369369
l_results ut3_develop.ut_varchar2_list;
370370
begin
371-
select *
371+
select text
372372
bulk collect into l_results
373-
from test_results;
373+
from test_results
374+
order by id;
374375
delete from test_results;
375376
commit;
376377
:clob_results := ut3_tester_helper.main_helper.table_to_clob(l_results);
@@ -453,7 +454,7 @@ create or replace package body coverage_helper is
453454
l_result := ut3_develop.ut_coverage.get_coverage_data(l_coverage_options);
454455
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => false);
455456
ut3_develop.ut_runner.coverage_stop();
456-
insert into test_results select owner||'.'||name from ut3_develop.ut_coverage_sources_tmp;
457+
insert into test_results select rownum, owner||'.'||name from ut3_develop.ut_coverage_sources_tmp;
457458
commit;
458459
end;]';
459460
l_plsql_block := replace(l_plsql_block,'{a_cov_options}',a_cov_options);
@@ -462,9 +463,10 @@ create or replace package body coverage_helper is
462463
declare
463464
l_results ut3_develop.ut_varchar2_list;
464465
begin
465-
select *
466+
select text
466467
bulk collect into l_results
467-
from test_results;
468+
from test_results
469+
order by id;
468470
delete from test_results;
469471
commit;
470472
:clob_results := ut3_tester_helper.main_helper.table_to_clob(l_results);
@@ -483,7 +485,13 @@ create or replace package body coverage_helper is
483485
l_plsql_block := q'[
484486
begin
485487
ut3_develop.ut_runner.coverage_start(']'||rawtohex(l_coverage_id)||q'[');
486-
insert into test_results select * from table( {a_run_command} );
488+
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => true);
489+
--gather coverage on the command executed
490+
begin {a_run_command}; end;
491+
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => false);
492+
ut3_develop.ut_runner.coverage_stop();
493+
--get the actual results of the command gathering the coverage
494+
insert into test_results select rownum as id, x.* from table( {a_run_command} ) x;
487495
commit;
488496
end;]';
489497
l_plsql_block := replace(l_plsql_block,'{a_run_command}',a_run_command);

test/ut3_user/reporters/test_coverage/test_proftab_coverage.pkb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,14 @@ create or replace package body test_proftab_coverage is
137137

138138
--Act
139139
insert into test_results
140-
select *
140+
select rownum, x.*
141141
from table(
142142
ut3_develop.ut.run(
143143
a_path => 'ut3_develop:coverage_testing',
144144
a_reporter=> ut3_develop.ut_coverage_sonar_reporter( ),
145145
a_include_objects => ut3_develop.ut_varchar2_list( 'ut3_develop.{p}' )
146146
)
147-
);
147+
) x;
148148
commit;
149149
end;
150150
]';

0 commit comments

Comments
 (0)