diff --git a/old_tests/RunAll.sql b/old_tests/RunAll.sql
index 434d8574f..206c01a1b 100644
--- a/old_tests/RunAll.sql
+++ b/old_tests/RunAll.sql
@@ -78,16 +78,12 @@ exec ut_coverage.set_develop_mode(true);
@@lib/RunTest.sql ut_output_buffer/send_line.DoesNotSendLineIfNullTextGiven.sql
@@lib/RunTest.sql ut_output_buffer/send_line.SendsALineIntoBufferTable.sql
-@@lib/RunTest.sql ut_reporters/ut_coverage_sonar_reporter.AcceptsFileMapping.sql
-@@lib/RunTest.sql ut_reporters/ut_coverage_sonar_reporter.BuildsSonarCoverageReport.sql
@@lib/RunTest.sql ut_reporters/ut_documentation_reporter.providesCorrectLineFromStacktrace.sql
-@@lib/RunTest.sql ut_reporters/ut_sonar_test_reporter.AcceptsFileMapping.sql
-@@lib/RunTest.sql ut_reporters/ut_sonar_test_reporter.ProducesExpectedOutputs.sql
-@@lib/RunTest.sql ut_reporters/ut_teamcity_reporter.ProducesExpectedOutputs.sql
-@@lib/RunTest.sql ut_reporters/ut_html_reporter.UserOverrideSchemaCoverage.sql
-@@lib/RunTest.sql ut_reporters/ut_html_reporter.DefaultSchemaCoverage.sql
@@lib/RunTest.sql ut_reporters/ut_documentation_reporter.reportMultipleWarnings.sql
@@lib/RunTest.sql ut_reporters/ut_documentation_reporter.reportTestTiming.sql
+@@lib/RunTest.sql ut_reporters/ut_html_reporter.DefaultSchemaCoverage.sql
+@@lib/RunTest.sql ut_reporters/ut_html_reporter.UserOverrideSchemaCoverage.sql
+@@lib/RunTest.sql ut_reporters/ut_teamcity_reporter.ProducesExpectedOutputs.sql
@@lib/RunTest.sql ut/ut.run.AcceptsCoverageFileList.sql
@@lib/RunTest.sql ut/ut.run.AcceptsCoverageFileListWithSutePaths.sql
diff --git a/old_tests/ut_reporters/ut_coverage_sonar_reporter.AcceptsFileMapping.sql b/old_tests/ut_reporters/ut_coverage_sonar_reporter.AcceptsFileMapping.sql
deleted file mode 100644
index a27cb4ef4..000000000
--- a/old_tests/ut_reporters/ut_coverage_sonar_reporter.AcceptsFileMapping.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-declare
- l_results ut_varchar2_list;
- l_clob clob;
- l_expected varchar2(32767);
-begin
- l_expected := '%';
- select *
- bulk collect into l_results
- from table(
- ut.run(
- 'test_reporters',
- ut_coverage_sonar_reporter(),
- a_source_file_mappings => ut_file_mapper.build_file_mappings( user, ut_varchar2_list(
- 'tests/helpers/test_reporters.pkb' )
- )
- )
- );
- l_clob := ut_utils.table_to_clob(l_results);
-
- if l_clob like l_expected then
- :test_result := ut_utils.gc_success;
- else
- dbms_output.put_line(l_clob);
- end if;
-
-end;
-/
diff --git a/old_tests/ut_reporters/ut_coverage_sonar_reporter.BuildsSonarCoverageReport.sql b/old_tests/ut_reporters/ut_coverage_sonar_reporter.BuildsSonarCoverageReport.sql
deleted file mode 100644
index e76385cfa..000000000
--- a/old_tests/ut_reporters/ut_coverage_sonar_reporter.BuildsSonarCoverageReport.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-declare
- l_results ut_varchar2_list;
- l_clob clob;
- l_expected varchar2(32767);
-begin
- l_expected := '%';
- select *
- bulk collect into l_results
- from table(ut.run('test_reporters',ut_coverage_sonar_reporter(), a_include_objects => ut_varchar2_list('test_reporters')));
- l_clob := ut_utils.table_to_clob(l_results);
-
- if l_clob like l_expected then
- :test_result := ut_utils.gc_success;
- else
- dbms_output.put_line(l_clob);
- end if;
-
-end;
-/
-
diff --git a/old_tests/ut_reporters/ut_sonar_test_reporter.AcceptsFileMapping.sql b/old_tests/ut_reporters/ut_sonar_test_reporter.AcceptsFileMapping.sql
deleted file mode 100644
index 4e4bea8dc..000000000
--- a/old_tests/ut_reporters/ut_sonar_test_reporter.AcceptsFileMapping.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-declare
- l_output_data ut_varchar2_list;
- l_output varchar2(32767);
- l_expected varchar2(32767);
-begin
- l_expected := q'[
-
-%
-
-
-%
-%%%
-%%%
-%%
-
-]';
-
- --act
- select *
- bulk collect into l_output_data
- from table(
- ut.run(
- 'test_reporters',
- ut_sonar_test_reporter(),
- a_test_file_mappings => ut_file_mapper.build_file_mappings( user, ut_varchar2_list('tests/helpers/test_reporters.pkb', 'tests/helpers/test_reporters_1.pkb'))
- )
- );
-
- l_output := ut_utils.table_to_clob(l_output_data);
-
- --assert
- if l_output like l_expected then
- :test_result := ut_utils.gc_success;
- else
- dbms_output.put_line('Actual:"'||l_output||'"');
- end if;
-end;
-/
diff --git a/old_tests/ut_reporters/ut_sonar_test_reporter.ProducesExpectedOutputs.sql b/old_tests/ut_reporters/ut_sonar_test_reporter.ProducesExpectedOutputs.sql
deleted file mode 100644
index 51fd3c7c7..000000000
--- a/old_tests/ut_reporters/ut_sonar_test_reporter.ProducesExpectedOutputs.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-declare
- l_output_data ut_varchar2_list;
- l_output varchar2(32767);
- l_expected varchar2(32767);
-begin
- l_expected := q'[
-
-%
-
-
-%
-%%%
-%%%
-%%
-
-]';
-
- --act
- select *
- bulk collect into l_output_data
- from table(ut.run('test_reporters',ut_sonar_test_reporter(),a_source_files=> null, a_test_files=>ut_varchar2_list('tests/helpers/test_reporters.pkb', 'tests/helpers/test_reporters_1.pkb')));
-
- l_output := ut_utils.table_to_clob(l_output_data);
-
- --assert
- if l_output like l_expected then
- :test_result := ut_utils.gc_success;
- else
- dbms_output.put_line('Actual:"'||l_output||'"');
- end if;
-end;
-/
diff --git a/source/api/ut.pkb b/source/api/ut.pkb
index 4225629b8..94ff1e2b5 100644
--- a/source/api/ut.pkb
+++ b/source/api/ut.pkb
@@ -105,50 +105,89 @@ create or replace package body ut is
end;
procedure run_autonomous(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base, a_color_console integer,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings, a_test_file_mappings ut_file_mappings,
- a_include_objects ut_varchar2_list, a_exclude_objects ut_varchar2_list
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base,
+ a_color_console integer,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings,
+ a_test_file_mappings ut_file_mappings,
+ a_include_objects ut_varchar2_list,
+ a_exclude_objects ut_varchar2_list,
+ a_client_character_set varchar2 := null
) is
pragma autonomous_transaction;
+ c_fail_on_errors constant boolean := false;
begin
ut_runner.run(
- a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
- ut_utils.int_to_boolean(a_color_console), a_coverage_schemes, a_source_file_mappings,
- a_test_file_mappings, a_include_objects, a_exclude_objects, false
+ a_paths,
+ ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
+ ut_utils.int_to_boolean(a_color_console),
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ c_fail_on_errors,
+ a_client_character_set
);
rollback;
end;
procedure run_autonomous(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base, a_color_console integer,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list, a_exclude_objects ut_varchar2_list
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base,
+ a_color_console integer,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list,
+ a_exclude_objects ut_varchar2_list,
+ a_client_character_set varchar2 := null
) is
pragma autonomous_transaction;
+ c_fail_on_errors constant boolean := false;
begin
ut_runner.run(
- a_paths, ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
- ut_utils.int_to_boolean(a_color_console), a_coverage_schemes,
+ a_paths,
+ ut_reporters(coalesce(a_reporter,ut_documentation_reporter())),
+ ut_utils.int_to_boolean(a_color_console),
+ a_coverage_schemes,
ut_file_mapper.build_file_mappings(a_source_files),
ut_file_mapper.build_file_mappings(a_test_files),
- a_include_objects, a_exclude_objects, false
+ a_include_objects,
+ a_exclude_objects,
+ c_fail_on_errors,
+ a_client_character_set
);
rollback;
end;
function run(
- a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
- l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
+ l_reporter ut_reporter_base := coalesce(a_reporter,
+ ut_documentation_reporter());
l_paths ut_varchar2_list := ut_varchar2_list(sys_context('userenv', 'current_schema'));
l_lines sys_refcursor;
l_line varchar2(4000);
begin
run_autonomous(
- l_paths, l_reporter, a_color_console,
- a_coverage_schemes, a_source_file_mappings, a_test_file_mappings, a_include_objects, a_exclude_objects
+ l_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -164,9 +203,14 @@ create or replace package body ut is
end;
function run(
- a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
l_paths ut_varchar2_list := ut_varchar2_list(sys_context('userenv', 'current_schema'));
@@ -174,8 +218,15 @@ create or replace package body ut is
l_line varchar2(4000);
begin
run_autonomous(
- l_paths, l_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
- a_include_objects, a_exclude_objects
+ l_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -191,17 +242,30 @@ create or replace package body ut is
end;
function run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
l_lines sys_refcursor;
l_line varchar2(4000);
begin
run_autonomous(
- a_paths, l_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
- a_include_objects, a_exclude_objects
+ a_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -217,17 +281,30 @@ create or replace package body ut is
end;
function run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
l_lines sys_refcursor;
l_line varchar2(4000);
begin
run_autonomous(
- a_paths, l_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
- a_include_objects, a_exclude_objects
+ a_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -243,18 +320,32 @@ create or replace package body ut is
end;
function run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
- l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
+ l_reporter ut_reporter_base := coalesce(a_reporter,
+ ut_documentation_reporter());
l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema')));
l_lines sys_refcursor;
l_line varchar2(4000);
begin
run_autonomous(
- l_paths, l_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
- a_include_objects, a_exclude_objects
+ l_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -270,9 +361,15 @@ create or replace package body ut is
end;
function run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema')));
@@ -280,8 +377,15 @@ create or replace package body ut is
l_line varchar2(4000);
begin
run_autonomous(
- l_paths, l_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
- a_include_objects, a_exclude_objects
+ l_paths,
+ l_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
l_lines := treat(l_reporter as ut_output_reporter_base).get_lines_cursor();
@@ -297,15 +401,28 @@ create or replace package body ut is
end;
procedure run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
begin
run_autonomous(
- a_paths, l_reporter, ut_utils.boolean_to_int(a_color_console), a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
- a_include_objects, a_exclude_objects
+ a_paths,
+ l_reporter,
+ ut_utils.boolean_to_int(a_color_console),
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
treat(l_reporter as ut_output_reporter_base).lines_to_dbms_output();
@@ -314,15 +431,28 @@ create or replace package body ut is
end;
procedure run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
l_reporter ut_reporter_base := coalesce(a_reporter, ut_documentation_reporter());
begin
run_autonomous(
- a_paths, l_reporter, ut_utils.boolean_to_int(a_color_console), a_coverage_schemes, a_source_files, a_test_files,
- a_include_objects, a_exclude_objects
+ a_paths,
+ l_reporter,
+ ut_utils.boolean_to_int(a_color_console),
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
if l_reporter is of (ut_output_reporter_base) then
treat(l_reporter as ut_output_reporter_base).lines_to_dbms_output();
@@ -331,52 +461,102 @@ create or replace package body ut is
end;
procedure run(
- a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
begin
ut.run(
- ut_varchar2_list(sys_context('userenv', 'current_schema')), a_reporter, a_color_console,
- a_coverage_schemes, a_source_file_mappings, a_test_file_mappings, a_include_objects, a_exclude_objects
+ ut_varchar2_list(sys_context('userenv', 'current_schema')),
+ a_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
end;
procedure run(
- a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
begin
ut.run(
- ut_varchar2_list(sys_context('userenv', 'current_schema')), a_reporter, a_color_console,
- a_coverage_schemes, a_source_files, a_test_files, a_include_objects, a_exclude_objects
+ ut_varchar2_list(sys_context('userenv', 'current_schema')),
+ a_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
end;
procedure run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema')));
begin
ut.run(
- l_paths, a_reporter, a_color_console, a_coverage_schemes, a_source_file_mappings, a_test_file_mappings,
- a_include_objects, a_exclude_objects
+ l_paths,
+ a_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_file_mappings,
+ a_test_file_mappings,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
end;
procedure run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) is
l_paths ut_varchar2_list := ut_varchar2_list(coalesce(a_path, sys_context('userenv', 'current_schema')));
begin
ut.run(
- l_paths, a_reporter, a_color_console, a_coverage_schemes, a_source_files, a_test_files,
- a_include_objects, a_exclude_objects
+ l_paths,
+ a_reporter,
+ a_color_console,
+ a_coverage_schemes,
+ a_source_files,
+ a_test_files,
+ a_include_objects,
+ a_exclude_objects,
+ a_client_character_set
);
end;
diff --git a/source/api/ut.pks b/source/api/ut.pks
index ad6ea9757..a90957fd2 100644
--- a/source/api/ut.pks
+++ b/source/api/ut.pks
@@ -48,75 +48,143 @@ create or replace package ut authid current_user as
procedure fail(a_message in varchar2);
function run(
- a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
function run(
- a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
function run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
function run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
function run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
function run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console integer := 0,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
) return ut_varchar2_rows pipelined;
procedure run(
- a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
procedure run(
- a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
procedure run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
procedure run(
- a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_paths ut_varchar2_list,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
procedure run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
procedure run(
- a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
+ a_path varchar2,
+ a_reporter ut_reporter_base := null,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_files ut_varchar2_list,
+ a_test_files ut_varchar2_list,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_client_character_set varchar2 := null
);
/**
diff --git a/source/api/ut_runner.pkb b/source/api/ut_runner.pkb
index 78db64c77..eb3bc8e68 100644
--- a/source/api/ut_runner.pkb
+++ b/source/api/ut_runner.pkb
@@ -74,9 +74,16 @@ create or replace package body ut_runner is
end;
procedure run(
- a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
+ a_paths ut_varchar2_list,
+ a_reporters ut_reporters,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_fail_on_errors boolean := false,
+ a_client_character_set varchar2 := null
) is
l_run ut_run;
l_coverage_schema_names ut_varchar2_rows;
@@ -118,7 +125,8 @@ create or replace package body ut_runner is
l_exclude_object_names,
l_include_object_names,
set(a_source_file_mappings),
- set(a_test_file_mappings)
+ set(a_test_file_mappings),
+ a_client_character_set
);
l_run.do_execute();
diff --git a/source/api/ut_runner.pks b/source/api/ut_runner.pks
index ae83b2e60..b796aab9b 100644
--- a/source/api/ut_runner.pks
+++ b/source/api/ut_runner.pks
@@ -56,10 +56,16 @@ create or replace package ut_runner authid current_user is
* schema.suite1.test2 - executes test2 procedure of suite1 suite with execution of all parent setup/teardown procedures
*/
procedure run(
- a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
- a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
- a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null,
- a_fail_on_errors boolean default false
+ a_paths ut_varchar2_list,
+ a_reporters ut_reporters,
+ a_color_console boolean := false,
+ a_coverage_schemes ut_varchar2_list := null,
+ a_source_file_mappings ut_file_mappings := null,
+ a_test_file_mappings ut_file_mappings := null,
+ a_include_objects ut_varchar2_list := null,
+ a_exclude_objects ut_varchar2_list := null,
+ a_fail_on_errors boolean := false,
+ a_client_character_set varchar2 := null
);
/**
diff --git a/source/core/types/ut_run.tpb b/source/core/types/ut_run.tpb
index ccbd847fc..a282bcfdb 100644
--- a/source/core/types/ut_run.tpb
+++ b/source/core/types/ut_run.tpb
@@ -24,7 +24,8 @@ create or replace type body ut_run as
a_exclude_objects ut_object_names := null,
a_include_objects ut_object_names := null,
a_project_file_mappings ut_file_mappings := null,
- a_test_file_mappings ut_file_mappings := null
+ a_test_file_mappings ut_file_mappings := null,
+ a_client_character_set varchar2 := null
) return self as result is
l_coverage_schema_names ut_varchar2_rows;
l_coverage_options ut_coverage_options;
@@ -33,6 +34,7 @@ create or replace type body ut_run as
self.run_paths := a_run_paths;
self.self_type := $$plsql_unit;
self.items := a_items;
+ self.client_character_set := lower(a_client_character_set);
self.results_count := ut_results_counter();
self.test_file_mappings := coalesce(a_test_file_mappings, ut_file_mappings());
self.coverage_options := ut_coverage_options(
diff --git a/source/core/types/ut_run.tps b/source/core/types/ut_run.tps
index 59bde318f..0f1c71ca7 100644
--- a/source/core/types/ut_run.tps
+++ b/source/core/types/ut_run.tps
@@ -23,6 +23,7 @@ create or replace type ut_run under ut_suite_item (
run_paths ut_varchar2_list,
coverage_options ut_coverage_options,
test_file_mappings ut_file_mappings,
+ client_character_set varchar2(100),
constructor function ut_run(
self in out nocopy ut_run,
a_items ut_suite_items,
@@ -31,7 +32,8 @@ create or replace type ut_run under ut_suite_item (
a_exclude_objects ut_object_names := null,
a_include_objects ut_object_names := null,
a_project_file_mappings ut_file_mappings := null,
- a_test_file_mappings ut_file_mappings := null
+ a_test_file_mappings ut_file_mappings := null,
+ a_client_character_set varchar2 := null
) return self as result,
overriding member procedure mark_as_skipped(self in out nocopy ut_run),
overriding member function do_execute(self in out nocopy ut_run) return boolean,
diff --git a/source/core/ut_utils.pkb b/source/core/ut_utils.pkb
index c6ffe2060..bbed8d348 100644
--- a/source/core/ut_utils.pkb
+++ b/source/core/ut_utils.pkb
@@ -507,6 +507,17 @@ procedure append_to_clob(a_src_clob in out nocopy clob, a_clob_table t_clob_tab,
return to_char(a_value, gc_number_format, 'NLS_NUMERIC_CHARACTERS=''. ''');
end;
+ function get_xml_header(a_encoding varchar2) return varchar2 is
+ begin
+ return
+ '';
+ end;
+
function trim_list_elements(a_list IN ut_varchar2_list, a_regexp_to_trim in varchar2 default '[:space:]') return ut_varchar2_list is
l_trimmed_list ut_varchar2_list;
l_index integer;
diff --git a/source/core/ut_utils.pks b/source/core/ut_utils.pks
index c2e37b794..19118aae8 100644
--- a/source/core/ut_utils.pks
+++ b/source/core/ut_utils.pks
@@ -320,6 +320,13 @@ create or replace package ut_utils authid definer is
*/
function to_xml_number_format(a_value number) return varchar2;
+
+ /**
+ * Returns xml header. If a_encoding is not null, header will include encoding attribute with provided value
+ */
+ function get_xml_header(a_encoding varchar2) return varchar2;
+
+
/*It takes a collection of type ut_varchar2_list and it trims the characters passed as arguments for every element*/
function trim_list_elements(a_list IN ut_varchar2_list, a_regexp_to_trim in varchar2 default '[:space:]') return ut_varchar2_list;
diff --git a/source/reporters/ut_coverage_cobertura_reporter.tpb b/source/reporters/ut_coverage_cobertura_reporter.tpb
index 82d085604..cce2224df 100644
--- a/source/reporters/ut_coverage_cobertura_reporter.tpb
+++ b/source/reporters/ut_coverage_cobertura_reporter.tpb
@@ -66,25 +66,27 @@ create or replace type body ut_coverage_cobertura_reporter is
end;
function get_coverage_xml(
- a_coverage_data ut_coverage.t_coverage
+ a_coverage_data ut_coverage.t_coverage,
+ a_run ut_run
) return clob is
- l_file_part varchar2(32767);
- l_result clob;
- l_unit ut_coverage.t_full_name;
- l_obj_name ut_coverage.t_object_name;
- c_coverage_def constant varchar2(200) := ''||CHR(10)||''||chr(10);
+ l_file_part varchar2(32767);
+ l_result clob;
+ l_unit ut_coverage.t_full_name;
+ l_obj_name ut_coverage.t_object_name;
+ c_coverage_def constant varchar2(200) := ''||chr(10);
c_file_footer constant varchar2(30) := ''||chr(10);
c_coverage_footer constant varchar2(30) := '';
c_sources_footer constant varchar2(30) := ''||chr(10);
- c_packages_footer constant varchar2(30) := ''||chr(10);
+ c_packages_footer constant varchar2(30) := ''||chr(10);
c_package_footer constant varchar2(30) := ''||chr(10);
- c_class_footer constant varchar2(30) := ''||chr(10);
- c_lines_footer constant varchar2(30) := ''||chr(10);
- l_epoch varchar2(50) := (sysdate - to_date('01-01-1970 00:00:00', 'dd-mm-yyyy hh24:mi:ss')) * 24 * 60 * 60;
+ c_class_footer constant varchar2(30) := ''||chr(10);
+ c_lines_footer constant varchar2(30) := ''||chr(10);
+ l_epoch varchar2(50) := (sysdate - to_date('01-01-1970 00:00:00', 'dd-mm-yyyy hh24:mi:ss')) * 24 * 60 * 60;
begin
dbms_lob.createtemporary(l_result,true);
+ ut_utils.append_to_clob(l_result, ut_utils.get_xml_header(a_run.client_character_set)||chr(10));
ut_utils.append_to_clob(l_result, c_coverage_def);
--write header
@@ -138,7 +140,7 @@ create or replace type body ut_coverage_cobertura_reporter is
l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
- self.print_clob( get_coverage_xml( l_coverage_data ) );
+ self.print_clob( get_coverage_xml( l_coverage_data, a_run ) );
(self as ut_reporter_base).after_calling_run(a_run);
end;
diff --git a/source/reporters/ut_coverage_html_reporter.tpb b/source/reporters/ut_coverage_html_reporter.tpb
index d1a9dd473..08069ff65 100644
--- a/source/reporters/ut_coverage_html_reporter.tpb
+++ b/source/reporters/ut_coverage_html_reporter.tpb
@@ -35,7 +35,14 @@ create or replace type body ut_coverage_html_reporter is
ut_coverage.coverage_stop();
l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
- self.print_clob( ut_coverage_report_html_helper.get_index( a_coverage_data => l_coverage_data,a_assets_path => self.assets_path, a_project_name=> self.project_name ));
+ self.print_clob(
+ ut_coverage_report_html_helper.get_index(
+ a_coverage_data => l_coverage_data,
+ a_assets_path => self.assets_path,
+ a_project_name => self.project_name,
+ a_charset => a_run.client_character_set
+ )
+ );
end;
diff --git a/source/reporters/ut_coverage_report_html_helper.pkb b/source/reporters/ut_coverage_report_html_helper.pkb
index 34e241d17..ea03e461b 100644
--- a/source/reporters/ut_coverage_report_html_helper.pkb
+++ b/source/reporters/ut_coverage_report_html_helper.pkb
@@ -277,8 +277,13 @@ function get_details_file_content(a_object_id varchar2, a_unit ut_object_name, a
/*
* public definitions
*/
- function get_index(a_coverage_data ut_coverage.t_coverage, a_assets_path varchar2, a_project_name varchar2 := null, a_command_line varchar2 := null)
- return clob is
+ function get_index(
+ a_coverage_data ut_coverage.t_coverage,
+ a_assets_path varchar2,
+ a_project_name varchar2 := null,
+ a_command_line varchar2 := null,
+ a_charset varchar2 := null
+ ) return clob is
l_file_part varchar2(32767);
l_result clob;
@@ -287,8 +292,10 @@ function get_details_file_content(a_object_id varchar2, a_unit ut_object_name, a
l_time_str varchar2(50);
l_using varchar2(1000);
l_unit ut_coverage.t_full_name;
+ l_charset varchar2(1000);
begin
- l_coverage_pct := coverage_pct(a_coverage_data.covered_lines, a_coverage_data.uncovered_lines);
+ l_charset := coalesce(upper(a_charset),'UTF-8');
+ l_coverage_pct := coverage_pct(a_coverage_data.covered_lines, a_coverage_data.uncovered_lines);
l_time_str := ut_utils.to_string(sysdate);
l_using := case
@@ -305,7 +312,7 @@ function get_details_file_content(a_object_id varchar2, a_unit ut_object_name, a
end;
--TODO - build main file containing total run data and per schema data
l_file_part := '
' || '' || l_title ||
- '' || '' ||
+ '' || '' ||
'' ||
'' ||
diff --git a/source/reporters/ut_coverage_report_html_helper.pks b/source/reporters/ut_coverage_report_html_helper.pks
index e718f9fed..8970a235e 100644
--- a/source/reporters/ut_coverage_report_html_helper.pks
+++ b/source/reporters/ut_coverage_report_html_helper.pks
@@ -31,7 +31,13 @@ create or replace package ut_coverage_report_html_helper authid current_user is
function line_hits_css_class(a_line_hist number) return varchar2;
- function get_index(a_coverage_data ut_coverage.t_coverage, a_assets_path varchar2, a_project_name varchar2 := null, a_command_line varchar2 := null) return clob;
+ function get_index(
+ a_coverage_data ut_coverage.t_coverage,
+ a_assets_path varchar2,
+ a_project_name varchar2 := null,
+ a_command_line varchar2 := null,
+ a_charset varchar2 := null
+ ) return clob;
end;
/
diff --git a/source/reporters/ut_coverage_sonar_reporter.tpb b/source/reporters/ut_coverage_sonar_reporter.tpb
index a82097061..29d3d351d 100644
--- a/source/reporters/ut_coverage_sonar_reporter.tpb
+++ b/source/reporters/ut_coverage_sonar_reporter.tpb
@@ -59,7 +59,8 @@ create or replace type body ut_coverage_sonar_reporter is
return l_result;
end;
function get_coverage_xml(
- a_coverage_data ut_coverage.t_coverage
+ a_coverage_data ut_coverage.t_coverage,
+ a_run ut_run
) return clob is
l_file_part varchar2(32767);
l_result clob;
@@ -70,6 +71,7 @@ create or replace type body ut_coverage_sonar_reporter is
begin
dbms_lob.createtemporary(l_result,true);
+ ut_utils.append_to_clob(l_result, ut_utils.get_xml_header(a_run.client_character_set)||chr(10));
ut_utils.append_to_clob(l_result, c_coverage_header);
l_unit := a_coverage_data.objects.first;
while l_unit is not null loop
@@ -90,7 +92,7 @@ create or replace type body ut_coverage_sonar_reporter is
l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
- self.print_clob( get_coverage_xml( l_coverage_data ) );
+ self.print_clob( get_coverage_xml( l_coverage_data, a_run ) );
end;
overriding member function get_description return varchar2 as
diff --git a/source/reporters/ut_junit_reporter.tpb b/source/reporters/ut_junit_reporter.tpb
index 5833b53c6..204a39fb4 100644
--- a/source/reporters/ut_junit_reporter.tpb
+++ b/source/reporters/ut_junit_reporter.tpb
@@ -135,6 +135,7 @@ create or replace type body ut_junit_reporter is
end;
begin
l_suite_id := 0;
+ self.print_text(ut_utils.get_xml_header(a_run.client_character_set));
self.print_text('');
for i in 1 .. a_run.items.count loop
print_suite_elements(treat(a_run.items(i) as ut_logical_suite), l_suite_id);
diff --git a/source/reporters/ut_sonar_test_reporter.tpb b/source/reporters/ut_sonar_test_reporter.tpb
index 1152c87d3..a410480ae 100644
--- a/source/reporters/ut_sonar_test_reporter.tpb
+++ b/source/reporters/ut_sonar_test_reporter.tpb
@@ -87,6 +87,7 @@ create or replace type body ut_sonar_test_reporter is
end;
begin
+ self.print_text(ut_utils.get_xml_header(a_run.client_character_set));
self.print_text('');
for i in 1 .. a_run.items.count loop
print_suite_results(treat(a_run.items(i) as ut_logical_suite), a_run.test_file_mappings);
diff --git a/source/reporters/ut_tfs_junit_reporter.tpb b/source/reporters/ut_tfs_junit_reporter.tpb
index b2a777c9f..dbcd558a6 100644
--- a/source/reporters/ut_tfs_junit_reporter.tpb
+++ b/source/reporters/ut_tfs_junit_reporter.tpb
@@ -141,6 +141,7 @@ create or replace type body ut_tfs_junit_reporter is
begin
l_suite_id := 0;
+ self.print_text(ut_utils.get_xml_header(a_run.client_character_set));
self.print_text('');
for i in 1 .. a_run.items.count loop
print_suite_results(treat(a_run.items(i) as ut_logical_suite), l_suite_id);
diff --git a/test/core/reporters.pkb b/test/core/reporters.pkb
index 29299ca08..8eb2a4992 100644
--- a/test/core/reporters.pkb
+++ b/test/core/reporters.pkb
@@ -1,6 +1,7 @@
create or replace package body reporters is
procedure create_test_helper_package is
+ pragma autonomous_transaction;
begin
execute immediate q'[create or replace package test_reporters
as
@@ -119,9 +120,26 @@ end;]';
end;
procedure reporters_cleanup is
+ pragma autonomous_transaction;
begin
drop_test_helper_package;
end;
+ procedure check_xml_encoding_included(
+ a_reporter ut3.ut_output_reporter_base,
+ a_client_character_set varchar2
+ ) is
+ l_results ut3.ut_varchar2_list;
+ l_actual clob;
+ begin
+ --Act
+ select *
+ bulk collect into l_results
+ from table(ut3.ut.run('test_reporters', a_reporter, a_client_character_set => a_client_character_set));
+ l_actual := ut3.ut_utils.table_to_clob(l_results);
+ --Assert
+ ut.expect(l_actual).to_be_like('%');
+ end;
+
end reporters;
/
diff --git a/test/core/reporters.pks b/test/core/reporters.pks
index 998427203..229e4e9b1 100644
--- a/test/core/reporters.pks
+++ b/test/core/reporters.pks
@@ -1,8 +1,18 @@
create or replace package reporters is
+ --%suite
+ --%suitepath(utplsql.core)
+
+ --%beforeall
procedure reporters_setup;
+ --%afterall
procedure reporters_cleanup;
+ procedure check_xml_encoding_included(
+ a_reporter ut3.ut_output_reporter_base,
+ a_client_character_set varchar2
+ );
+
end reporters;
/
diff --git a/test/core/reporters/test_coverage.pkb b/test/core/reporters/test_coverage.pkb
index 060c8f124..4e3846af8 100644
--- a/test/core/reporters/test_coverage.pkb
+++ b/test/core/reporters/test_coverage.pkb
@@ -253,7 +253,8 @@ create or replace package body test_coverage is
--Assert
l_actual := ut3.ut_utils.table_to_clob(l_results);
- ut.expect(l_actual).to_equal(to_clob('
+ ut.expect(l_actual).to_equal(to_clob('
+
'));
drop_dummy_coverage_test_1;
end;
diff --git a/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pkb b/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pkb
index 7aa2b3cd4..81b2c12f8 100644
--- a/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pkb
+++ b/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pkb
@@ -6,7 +6,8 @@ create or replace package body test_coverage_sonar_reporter is
l_actual clob;
begin
--Arrange
- l_expected := '
+ l_expected := '
+
@@ -29,5 +30,10 @@ create or replace package body test_coverage_sonar_reporter is
ut.expect(l_actual).to_equal(l_expected);
end;
+ procedure check_encoding_included is
+ begin
+ reporters.check_xml_encoding_included(ut3.ut_coverage_sonar_reporter(), 'UTF-8');
+ end;
+
end;
/
diff --git a/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pks b/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pks
index 26aad7cb5..31cb358dd 100644
--- a/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pks
+++ b/test/core/reporters/test_coverage/test_coverage_sonar_reporter.pks
@@ -6,5 +6,8 @@ create or replace package test_coverage_sonar_reporter is
--%test(reports on a project file mapped to database object)
procedure report_on_file;
+ --%test(Includes XML header with encoding when encoding provided)
+ procedure check_encoding_included;
+
end;
/
diff --git a/test/core/reporters/test_coverage/test_html_extended_reporter.pkb b/test/core/reporters/test_coverage/test_html_extended_reporter.pkb
index cd71a6c8c..b1f6fa4bd 100644
--- a/test/core/reporters/test_coverage/test_html_extended_reporter.pkb
+++ b/test/core/reporters/test_coverage/test_html_extended_reporter.pkb
@@ -4,9 +4,10 @@ create or replace package body test_html_extended_reporter is
l_results ut3.ut_varchar2_list;
l_expected varchar2(32767);
l_actual clob;
+ l_charset varchar2(100) := 'ISO-8859-1';
begin
--Arrange
- l_expected := '%UT3.DUMMY_COVERAGE
%4 relevant lines. 3 lines covered (including 1 lines partially covered ) and 1 lines missed%';
+ l_expected := '%%UT3.DUMMY_COVERAGE
%4 relevant lines. 3 lines covered (including 1 lines partially covered ) and 1 lines missed%';
select *
bulk collect into l_results
@@ -15,7 +16,8 @@ create or replace package body test_html_extended_reporter is
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_html_reporter(),
a_source_files => ut3.ut_varchar2_list( 'test/ut3.dummy_coverage.pkb' ),
- a_test_files => ut3.ut_varchar2_list( )
+ a_test_files => ut3.ut_varchar2_list( ),
+ a_client_character_set => l_charset
)
);
l_actual := ut3.ut_utils.table_to_clob(l_results);
diff --git a/test/core/reporters/test_coverage/test_html_proftab_reporter.pkb b/test/core/reporters/test_coverage/test_html_proftab_reporter.pkb
index 7167dc6f6..c10af2869 100644
--- a/test/core/reporters/test_coverage/test_html_proftab_reporter.pkb
+++ b/test/core/reporters/test_coverage/test_html_proftab_reporter.pkb
@@ -4,11 +4,10 @@ create or replace package body test_html_proftab_reporter is
l_results ut3.ut_varchar2_list;
l_expected varchar2(32767);
l_actual clob;
+ l_charset varchar2(100) := 'ISO-8859-1';
begin
--Arrange
- l_expected := '%UT3.DUMMY_COVERAGE
%3 relevant lines. 2 lines covered and 1 lines missed%';
-
- --l_expected := '%%';
+ l_expected := '%%UT3.DUMMY_COVERAGE
%3 relevant lines. 2 lines covered and 1 lines missed%';
--Act
select *
bulk collect into l_results
@@ -17,7 +16,8 @@ create or replace package body test_html_proftab_reporter is
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_html_reporter(),
a_source_files => ut3.ut_varchar2_list( 'test/ut3.dummy_coverage.pkb' ),
- a_test_files => ut3.ut_varchar2_list( )
+ a_test_files => ut3.ut_varchar2_list( ),
+ a_client_character_set => l_charset
)
);
l_actual := ut3.ut_utils.table_to_clob(l_results);
diff --git a/test/core/reporters/test_junit_reporter.pkb b/test/core/reporters/test_junit_reporter.pkb
index 3e60b31c6..29beaaa55 100644
--- a/test/core/reporters/test_junit_reporter.pkb
+++ b/test/core/reporters/test_junit_reporter.pkb
@@ -90,8 +90,6 @@ create or replace package body test_junit_reporter as
end;
end;]';
- reporters.reporters_setup;
-
end;
procedure escapes_special_chars is
@@ -199,7 +197,8 @@ create or replace package body test_junit_reporter as
procedure report_test_without_desc is
l_results ut3.ut_varchar2_list;
l_actual clob;
- l_expected varchar2(32767):= q'[
+ l_expected varchar2(32767):= q'[
+
@@ -224,7 +223,8 @@ create or replace package body test_junit_reporter as
procedure report_suite_without_desc is
l_results ut3.ut_varchar2_list;
l_actual clob;
- l_expected varchar2(32767):= q'[
+ l_expected varchar2(32767):= q'[
+
@@ -245,7 +245,8 @@ create or replace package body test_junit_reporter as
procedure reporort_produces_expected_out is
l_results ut3.ut_varchar2_list;
l_actual clob;
- l_expected varchar2(32767):=q'[
+ l_expected varchar2(32767):=q'[
+
@@ -311,7 +312,8 @@ create or replace package body test_junit_reporter as
procedure check_classname_is_populated is
l_results ut3.ut_varchar2_list;
l_actual clob;
- l_expected varchar2(32767):= q'[
+ l_expected varchar2(32767):= q'[
+
@@ -328,7 +330,12 @@ create or replace package body test_junit_reporter as
l_actual := ut3.ut_utils.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;
-
+
+ procedure check_encoding_included is
+ begin
+ reporters.check_xml_encoding_included(ut3.ut_junit_reporter(), 'UTF-8');
+ end;
+
procedure remove_test_package is
pragma autonomous_transaction;
begin
@@ -338,7 +345,7 @@ create or replace package body test_junit_reporter as
execute immediate 'drop package tst_package_junit_nosuite';
execute immediate 'drop package check_fail_escape';
execute immediate 'drop package Tst_Fix_Case_Sensitive';
- reporters.reporters_cleanup;
end;
+
end;
/
diff --git a/test/core/reporters/test_junit_reporter.pks b/test/core/reporters/test_junit_reporter.pks
index 397fa09d8..b39c5ff03 100644
--- a/test/core/reporters/test_junit_reporter.pks
+++ b/test/core/reporters/test_junit_reporter.pks
@@ -42,6 +42,9 @@ create or replace package test_junit_reporter as
--%test( Validate that fail with special char are escaped )
procedure check_failure_escaped;
+ --%test(Includes XML header with encoding when encoding provided)
+ procedure check_encoding_included;
+
--%afterall
procedure remove_test_package;
end;
diff --git a/test/core/reporters/test_sonar_test_reporter.pkb b/test/core/reporters/test_sonar_test_reporter.pkb
new file mode 100644
index 000000000..9cf38ea91
--- /dev/null
+++ b/test/core/reporters/test_sonar_test_reporter.pkb
@@ -0,0 +1,36 @@
+create or replace package body test_sonar_test_reporter as
+
+ procedure report_produces_expected_out is
+ l_results ut3.ut_varchar2_list;
+ l_actual clob;
+ l_expected varchar2(32767):=q'[
+
+
+%
+%%%
+%%%
+%%
+
+]';
+
+ begin
+ select *
+ bulk collect into l_results
+ from table(
+ ut3.ut.run(
+ 'test_reporters',
+ ut3.ut_sonar_test_reporter(),
+ a_test_file_mappings => ut3.ut_file_mapper.build_file_mappings( user, ut3.ut_varchar2_list('tests/helpers/test_reporters.pkb'))
+ )
+ );
+ l_actual := ut3.ut_utils.table_to_clob(l_results);
+ ut.expect(l_actual).to_be_like(l_expected);
+ end;
+
+ procedure check_encoding_included is
+ begin
+ reporters.check_xml_encoding_included(ut3.ut_sonar_test_reporter(), 'UTF-8');
+ end;
+
+end;
+/
diff --git a/test/core/reporters/test_sonar_test_reporter.pks b/test/core/reporters/test_sonar_test_reporter.pks
new file mode 100644
index 000000000..ab4776c38
--- /dev/null
+++ b/test/core/reporters/test_sonar_test_reporter.pks
@@ -0,0 +1,13 @@
+create or replace package test_sonar_test_reporter as
+
+ --%suite(ut_sonar_test_reporter)
+ --%suitepath(utplsql.core.reporters)
+
+ --%test(Report produces expected output)
+ procedure report_produces_expected_out;
+
+ --%test(Includes XML header with encoding when encoding provided)
+ procedure check_encoding_included;
+
+end;
+/
diff --git a/test/core/reporters/test_tfs_junit_reporter.pkb b/test/core/reporters/test_tfs_junit_reporter.pkb
index ff77cff5e..bd09b8682 100644
--- a/test/core/reporters/test_tfs_junit_reporter.pkb
+++ b/test/core/reporters/test_tfs_junit_reporter.pkb
@@ -134,7 +134,8 @@ create or replace package body test_tfs_junit_reporter as
from table(ut3.ut.run('check_junit_flat_suitepath',ut3.ut_tfs_junit_reporter()));
l_actual := ut3.ut_utils.table_to_clob(l_results);
--Assert
- ut.expect(l_actual).to_be_like('
+ ut.expect(l_actual).to_be_like('
+
@@ -196,5 +197,11 @@ create or replace package body test_tfs_junit_reporter as
execute immediate 'drop package check_junit_flat_suitepath';
execute immediate 'drop package check_fail_escape';
end;
+
+ procedure check_encoding_included is
+ begin
+ reporters.check_xml_encoding_included(ut3.ut_tfs_junit_reporter(), 'UTF-8');
+ end;
+
end;
/
diff --git a/test/core/reporters/test_tfs_junit_reporter.pks b/test/core/reporters/test_tfs_junit_reporter.pks
index 8716fdf14..cc589be1b 100644
--- a/test/core/reporters/test_tfs_junit_reporter.pks
+++ b/test/core/reporters/test_tfs_junit_reporter.pks
@@ -30,6 +30,9 @@ create or replace package test_tfs_junit_reporter as
--%test( Validate that failures with special char are escaped )
procedure check_failure_escaped;
+ --%test(Includes XML header with encoding when encoding provided)
+ procedure check_encoding_included;
+
--%afterall
procedure remove_test_package;
end;
diff --git a/test/core/reporters/test_xunit_reporter.pkb b/test/core/reporters/test_xunit_reporter.pkb
deleted file mode 100644
index f75c53ce4..000000000
--- a/test/core/reporters/test_xunit_reporter.pkb
+++ /dev/null
@@ -1,133 +0,0 @@
-create or replace package body test_xunit_reporter as
-
- procedure crate_a_test_package is
- pragma autonomous_transaction;
- begin
- execute immediate q'[create or replace package check_xunit_reporting is
- --%suite(A suite with )
-
- --%test(A test with )
- procedure test_do_stuff;
-
- end;]';
- execute immediate q'[create or replace package body check_xunit_reporting is
- procedure test_do_stuff is
- begin
- ut3.ut.expect(1).to_equal(1);
- ut3.ut.expect(1).to_equal(2);
- end;
-
- end;]';
-
- execute immediate q'[create or replace package check_xunit_rep_suitepath is
- --%suitepath(core)
- --%suite(check_xunit_rep_suitepath)
- --%displayname(Check XUNIT Get path for suitepath)
-
- --%test(check_xunit_rep_suitepath)
- --%displayname(Check XUNIT Get path for suitepath)
- procedure check_xunit_rep_suitepath;
- end;]';
- execute immediate q'[create or replace package body check_xunit_rep_suitepath is
- procedure check_xunit_rep_suitepath is
- begin
- ut3.ut.expect(1).to_equal(1);
- end;
- end;]';
- end;
-
- procedure escapes_special_chars is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_reporting',ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).not_to_be_like('%%');
- ut.expect(l_actual).to_be_like('%<tag>%');
- end;
-
- procedure reports_only_failed_or_errored is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_reporting',ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).not_to_be_like('%Actual: 1 (number) was expected to equal: 1 (number)%');
- ut.expect(l_actual).to_be_like('%Actual: 1 (number) was expected to equal: 2 (number)%');
- end;
-
- procedure reports_failed_line is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_reporting',ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%at "%.CHECK_XUNIT_REPORTING%", line %');
- end;
-
- procedure check_classname_suite is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_reporting',ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%testcase classname="check_xunit_reporting"%');
- end;
-
- procedure check_nls_number_formatting is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- l_nls_numeric_characters varchar2(30);
- begin
- --Arrange
- select nsp.value into l_nls_numeric_characters
- from nls_session_parameters nsp
- where parameter = 'NLS_NUMERIC_CHARACTERS';
- execute immediate q'[alter session set NLS_NUMERIC_CHARACTERS=', ']';
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_reporting', ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_match('time="[0-9]*\.[0-9]{3,6}"');
- --Cleanup
- execute immediate 'alter session set NLS_NUMERIC_CHARACTERS='''||l_nls_numeric_characters||'''';
- end;
-
- procedure check_classname_suitepath is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
- begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_xunit_rep_suitepath',ut3.ut_xunit_reporter()));
- l_actual := ut3.ut_utils.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%testcase classname="core.check_xunit_rep_suitepath"%');
- end;
- procedure remove_test_package is
- pragma autonomous_transaction;
- begin
- execute immediate 'drop package check_xunit_reporting';
- execute immediate 'drop package check_xunit_rep_suitepath';
- end;
-end;
-/
diff --git a/test/install_tests.sql b/test/install_tests.sql
index 282e8b440..0b04be320 100644
--- a/test/install_tests.sql
+++ b/test/install_tests.sql
@@ -41,6 +41,7 @@ set define on
@@install_below_12_2.sql 'core/reporters/test_coverage/test_html_proftab_reporter.pks'
set define off
@@core/reporters/test_tfs_junit_reporter.pks
+@@core/reporters/test_sonar_test_reporter.pks
@@core/expectations.pks
@@core/expectations/scalar_data/binary/test_be_greater_or_equal.pks
@@core/expectations/scalar_data/binary/test_be_greater_than.pks
@@ -84,6 +85,7 @@ set define on
@@install_below_12_2.sql 'core/reporters/test_coverage/test_html_proftab_reporter.pkb'
set define off
@@core/reporters/test_tfs_junit_reporter.pkb
+@@core/reporters/test_sonar_test_reporter.pkb
@@core/expectations.pkb
@@core/expectations/scalar_data/binary/test_be_greater_or_equal.pkb
@@core/expectations/scalar_data/binary/test_be_greater_than.pkb