diff --git a/source/core/types/ut_test.tpb b/source/core/types/ut_test.tpb
index 14620b24b..099704fd5 100644
--- a/source/core/types/ut_test.tpb
+++ b/source/core/types/ut_test.tpb
@@ -162,5 +162,15 @@ create or replace type body ut_test as
end loop;
return l_outputs;
end;
+
+ member function get_failed_expectation_lines return ut_varchar2_rows is
+ l_results ut_varchar2_rows;
+ begin
+ for i in 1 .. failed_expectations.count loop
+ ut_utils.append_to_list( l_results, ut_utils.convert_collection( failed_expectations(i).get_result_lines() ) );
+ ut_utils.append_to_list( l_results, failed_expectations(i).caller_info );
+ end loop;
+ return l_results;
+ end;
end;
/
diff --git a/source/core/types/ut_test.tps b/source/core/types/ut_test.tps
index 752ef3ef7..7ca01313a 100644
--- a/source/core/types/ut_test.tps
+++ b/source/core/types/ut_test.tps
@@ -64,6 +64,7 @@ create or replace type ut_test under ut_suite_item (
overriding member procedure calc_execution_result(self in out nocopy ut_test),
overriding member procedure mark_as_errored(self in out nocopy ut_test, a_error_stack_trace varchar2),
overriding member function get_error_stack_traces(self ut_test) return ut_varchar2_list,
- overriding member function get_serveroutputs return clob
+ overriding member function get_serveroutputs return clob,
+ member function get_failed_expectation_lines return ut_varchar2_rows
)
/
diff --git a/source/core/ut_utils.pkb b/source/core/ut_utils.pkb
index 4593ba1a5..a1fa15022 100644
--- a/source/core/ut_utils.pkb
+++ b/source/core/ut_utils.pkb
@@ -798,5 +798,31 @@ create or replace package body ut_utils is
return l_valid_name;
end;
+ function to_cdata(a_lines ut_varchar2_rows) return ut_varchar2_rows is
+ l_results ut_varchar2_rows;
+ begin
+ if a_lines is not empty then
+ ut_utils.append_to_list( l_results, gc_cdata_start_tag);
+ for i in 1 .. a_lines.count loop
+ ut_utils.append_to_list( l_results, replace( a_lines(i), gc_cdata_end_tag, gc_cdata_end_tag_wrap ) );
+ end loop;
+ ut_utils.append_to_list( l_results, gc_cdata_end_tag);
+ else
+ l_results := a_lines;
+ end if;
+ return l_results;
+ end;
+
+ function to_cdata(a_clob clob) return clob is
+ l_result clob;
+ begin
+ if a_clob is not null and a_clob != empty_clob() then
+ l_result := replace( a_clob, gc_cdata_end_tag, gc_cdata_end_tag_wrap );
+ else
+ l_result := a_clob;
+ end if;
+ return l_result;
+ end;
+
end ut_utils;
/
diff --git a/source/core/ut_utils.pks b/source/core/ut_utils.pks
index 7d3faaea4..e49c5dd65 100644
--- a/source/core/ut_utils.pks
+++ b/source/core/ut_utils.pks
@@ -44,6 +44,11 @@ create or replace package ut_utils authid definer is
gc_failure_char constant varchar2(7) := 'Failure'; -- one or more expectations failed
gc_error_char constant varchar2(5) := 'Error'; -- exception was raised
+ gc_cdata_start_tag constant varchar2(10) := '';
+ gc_cdata_end_tag_wrap constant varchar2(30) := ']]'||gc_cdata_end_tag||gc_cdata_start_tag||'>';
+
+
/*
Constants: Rollback type for ut_test_object
*/
@@ -386,6 +391,18 @@ create or replace package ut_utils authid definer is
* Check if xml name is valid if not build a valid name
*/
function get_valid_xml_name(a_name varchar2) return varchar2;
-
-end ut_utils;
+
+ /**
+ * Converts input list into a list surrounded by CDATA tags
+ * All CDATA end tags get escaped using recommended method from https://en.wikipedia.org/wiki/CDATA#Nesting
+ */
+ function to_cdata(a_lines ut_varchar2_rows) return ut_varchar2_rows;
+
+ /**
+ * Converts input CLOB into a CLOB surrounded by CDATA tags
+ * All CDATA end tags get escaped using recommended method from https://en.wikipedia.org/wiki/CDATA#Nesting
+ */
+ function to_cdata(a_clob clob) return clob;
+
+ end ut_utils;
/
diff --git a/source/reporters/ut_junit_reporter.tpb b/source/reporters/ut_junit_reporter.tpb
index bc88aa8af..c08790080 100644
--- a/source/reporters/ut_junit_reporter.tpb
+++ b/source/reporters/ut_junit_reporter.tpb
@@ -23,8 +23,6 @@ create or replace type body ut_junit_reporter is
end;
overriding member procedure after_calling_run(self in out nocopy ut_junit_reporter, a_run in ut_run) is
- c_cddata_tag_start constant varchar2(30) := '';
l_suite_id integer := 0;
l_tests_count integer := a_run.results_count.disabled_count + a_run.results_count.success_count +
a_run.results_count.failure_count + a_run.results_count.errored_count;
@@ -36,8 +34,7 @@ create or replace type body ut_junit_reporter is
procedure print_test_elements(a_test ut_test) is
l_results ut_varchar2_rows := ut_varchar2_rows();
- l_lines ut_varchar2_list;
- l_output clob;
+ l_output clob;
begin
ut_utils.append_to_list(
l_results,
@@ -51,30 +48,18 @@ create or replace type body ut_junit_reporter is
end if;
if a_test.result = ut_utils.gc_error then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, c_cddata_tag_start);
- ut_utils.append_to_list( l_results, ut_utils.convert_collection(a_test.get_error_stack_traces()) );
- ut_utils.append_to_list( l_results, c_cddata_tag_end);
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( a_test.get_error_stack_traces() ) ) );
ut_utils.append_to_list( l_results, '');
elsif a_test.result > ut_utils.gc_success then
ut_utils.append_to_list( l_results, '');
- for i in 1 .. a_test.failed_expectations.count loop
-
- l_lines := a_test.failed_expectations(i).get_result_lines();
-
- for j in 1 .. l_lines.count loop
- ut_utils.append_to_list( l_results, dbms_xmlgen.convert(l_lines(j)) );
- end loop;
- ut_utils.append_to_list( l_results, dbms_xmlgen.convert(a_test.failed_expectations(i).caller_info) );
- end loop;
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( a_test.get_failed_expectation_lines() ) );
ut_utils.append_to_list( l_results, '');
end if;
- -- TODO - decide if we need/want to use the tag too
+
l_output := a_test.get_serveroutputs();
if l_output is not null then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, c_cddata_tag_start);
- ut_utils.append_to_list( l_results, l_output);
- ut_utils.append_to_list( l_results, c_cddata_tag_end );
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( a_test.get_serveroutputs() ) );
ut_utils.append_to_list( l_results, '' );
else
ut_utils.append_to_list( l_results, '');
@@ -86,7 +71,7 @@ create or replace type body ut_junit_reporter is
end;
procedure print_suite_elements(a_suite ut_logical_suite, a_suite_id in out nocopy integer) is
- l_tests_count integer := a_suite.results_count.disabled_count + a_suite.results_count.success_count +
+ l_count integer := a_suite.results_count.disabled_count + a_suite.results_count.success_count +
a_suite.results_count.failure_count + a_suite.results_count.errored_count;
l_suite ut_suite;
l_tests ut_suite_items := ut_suite_items();
@@ -95,7 +80,7 @@ create or replace type body ut_junit_reporter is
l_errors ut_varchar2_list;
begin
a_suite_id := a_suite_id + 1;
- self.print_text('');
-- Becasue testsuites have to appear before test we capture test and leave it for later.
@@ -117,11 +102,9 @@ create or replace type body ut_junit_reporter is
l_suite := treat(a_suite as ut_suite);
l_data := l_suite.get_serveroutputs();
- if l_data is not null and l_data != empty_clob() then
+ if l_data is not null then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, c_cddata_tag_start);
- ut_utils.append_to_list( l_results, l_data);
- ut_utils.append_to_list( l_results, c_cddata_tag_end);
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( l_data ) );
ut_utils.append_to_list( l_results, '');
else
ut_utils.append_to_list( l_results, '');
@@ -130,9 +113,7 @@ create or replace type body ut_junit_reporter is
l_errors := l_suite.get_error_stack_traces();
if l_errors is not empty then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, c_cddata_tag_start);
- ut_utils.append_to_list( l_results, ut_utils.table_to_clob(l_errors));
- ut_utils.append_to_list( l_results, c_cddata_tag_end);
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( l_errors ) ) );
ut_utils.append_to_list( l_results, '');
else
ut_utils.append_to_list( l_results, '');
diff --git a/source/reporters/ut_sonar_test_reporter.tpb b/source/reporters/ut_sonar_test_reporter.tpb
index 1da349d83..874a07957 100644
--- a/source/reporters/ut_sonar_test_reporter.tpb
+++ b/source/reporters/ut_sonar_test_reporter.tpb
@@ -43,26 +43,18 @@ create or replace type body ut_sonar_test_reporter is
end;
procedure print_test_results(a_test ut_test) is
- l_results ut_varchar2_rows := ut_varchar2_rows();
- l_lines ut_varchar2_list;
+ l_results ut_varchar2_rows := ut_varchar2_rows();
begin
ut_utils.append_to_list( l_results, '');
if a_test.result = ut_utils.gc_disabled then
ut_utils.append_to_list( l_results, '');
elsif a_test.result = ut_utils.gc_error then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( a_test.get_error_stack_traces() ) ) );
ut_utils.append_to_list( l_results, '');
elsif a_test.result > ut_utils.gc_success then
ut_utils.append_to_list( l_results, '');
- for i in 1 .. a_test.failed_expectations.count loop
- l_lines := a_test.failed_expectations(i).get_result_lines();
- for i in 1 .. l_lines.count loop
- ut_utils.append_to_list( l_results, dbms_xmlgen.convert(l_lines(i)));
- end loop;
- end loop;
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( a_test.get_failed_expectation_lines() ) );
ut_utils.append_to_list( l_results, '');
end if;
ut_utils.append_to_list( l_results, '');
diff --git a/source/reporters/ut_tfs_junit_reporter.tpb b/source/reporters/ut_tfs_junit_reporter.tpb
index 5f3770b23..5fba96886 100644
--- a/source/reporters/ut_tfs_junit_reporter.tpb
+++ b/source/reporters/ut_tfs_junit_reporter.tpb
@@ -29,9 +29,7 @@ create or replace type body ut_tfs_junit_reporter is
member procedure junit_version_one(self in out nocopy ut_tfs_junit_reporter,a_run in ut_run) is
l_suite_id integer := 0;
- l_tests_count integer := a_run.results_count.disabled_count + a_run.results_count.success_count +
- a_run.results_count.failure_count + a_run.results_count.errored_count;
-
+
function get_common_suite_attributes(a_item ut_suite_item) return varchar2 is
begin
return ' errors="' ||a_item.results_count.errored_count || '"' ||
@@ -55,7 +53,6 @@ create or replace type body ut_tfs_junit_reporter is
procedure print_test_results(a_test ut_test) is
l_results ut_varchar2_rows := ut_varchar2_rows();
- l_lines ut_varchar2_list;
begin
self.print_text('');
@@ -69,20 +66,12 @@ create or replace type body ut_tfs_junit_reporter is
if a_test.result = ut_utils.gc_error then
ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( a_test.get_error_stack_traces() ) ) );
ut_utils.append_to_list( l_results, '');
-- Do not count error as failure
elsif a_test.result = ut_utils.gc_failure then
ut_utils.append_to_list( l_results, '');
- for i in 1 .. a_test.failed_expectations.count loop
- l_lines := a_test.failed_expectations(i).get_result_lines();
- for j in 1 .. l_lines.count loop
- ut_utils.append_to_list( l_results, dbms_xmlgen.convert(l_lines(j)));
- end loop;
- ut_utils.append_to_list( l_results, dbms_xmlgen.convert(a_test.failed_expectations(i).caller_info));
- end loop;
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( a_test.get_failed_expectation_lines() ) );
ut_utils.append_to_list( l_results, '');
end if;
@@ -106,43 +95,39 @@ create or replace type body ut_tfs_junit_reporter is
end if;
end loop;
- if a_suite is of(ut_suite) then
- a_suite_id := a_suite_id + 1;
- self.print_text('');
- self.print_text('');
- for i in 1 .. a_suite.items.count loop
- if a_suite.items(i) is of(ut_test) then
- print_test_results(treat(a_suite.items(i) as ut_test));
- end if;
- end loop;
- l_suite := treat(a_suite as ut_suite);
- l_outputs := l_suite.get_serveroutputs();
- if l_outputs is not null and l_outputs != empty_clob() then
- ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
- else
- ut_utils.append_to_list( l_results, '');
- end if;
+ if a_suite is of(ut_suite) then
+ a_suite_id := a_suite_id + 1;
+ self.print_text('');
+ self.print_text('');
+ for i in 1 .. a_suite.items.count loop
+ if a_suite.items(i) is of(ut_test) then
+ print_test_results(treat(a_suite.items(i) as ut_test));
+ end if;
+ end loop;
+ l_suite := treat(a_suite as ut_suite);
+ l_outputs := l_suite.get_serveroutputs();
+ if l_outputs is not null and l_outputs != empty_clob() then
+ ut_utils.append_to_list( l_results, '');
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( l_suite.get_serveroutputs() ) );
+ ut_utils.append_to_list( l_results, '');
+ else
+ ut_utils.append_to_list( l_results, '');
+ end if;
- l_errors := l_suite.get_error_stack_traces();
- if l_errors is not empty then
- ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
- ut_utils.append_to_list( l_results, '');
- else
- ut_utils.append_to_list( l_results, '');
- end if;
- ut_utils.append_to_list( l_results, '');
+ l_errors := l_suite.get_error_stack_traces();
+ if l_errors is not empty then
+ ut_utils.append_to_list( l_results, '');
+ ut_utils.append_to_list( l_results, ut_utils.to_cdata( ut_utils.convert_collection( l_errors ) ) );
+ ut_utils.append_to_list( l_results, '');
+ else
+ ut_utils.append_to_list( l_results, '');
+ end if;
+ ut_utils.append_to_list( l_results, '');
- self.print_text_lines(l_results);
+ self.print_text_lines(l_results);
end if;
- end;
+ end;
begin
l_suite_id := 0;
diff --git a/test/ut3_user/api/test_ut_run.pkb b/test/ut3_user/api/test_ut_run.pkb
index 43a2238ae..620c87977 100644
--- a/test/ut3_user/api/test_ut_run.pkb
+++ b/test/ut3_user/api/test_ut_run.pkb
@@ -734,8 +734,8 @@ Failures:%
procedure remove_time_from_results(a_results in out nocopy ut3.ut_varchar2_list) is
begin
for i in 1 .. a_results.count loop
- a_results(i) := regexp_replace(a_results(i),'\[[0-9]*\.[0-9]+ sec\]','');
- a_results(i) := regexp_replace(a_results(i),'Finished in [0-9]*\.[0-9]+ seconds','');
+ a_results(i) := regexp_replace(a_results(i),'\[[0-9]*[\.,][0-9]+ sec\]','');
+ a_results(i) := regexp_replace(a_results(i),'Finished in [0-9]*[\.,][0-9]+ seconds','');
end loop;
end;
diff --git a/test/ut3_user/reporters.pkb b/test/ut3_user/reporters.pkb
index 364566569..d6a104242 100644
--- a/test/ut3_user/reporters.pkb
+++ b/test/ut3_user/reporters.pkb
@@ -110,8 +110,24 @@ as
dbms_output.put_line('');
end;
-end;]';
-
+end;]';
+
+ execute immediate q'[create or replace package check_fail_escape is
+ --%suitepath(core)
+ --%suite(Check JUNIT XML failure is escaped)
+
+ --%test(Fail Miserably)
+ procedure fail_miserably;
+
+ end;]';
+
+ execute immediate q'[create or replace package body check_fail_escape is
+ procedure fail_miserably is
+ begin
+ ut3.ut.expect('test').to_equal('');
+ end;
+ end;]';
+
end;
procedure reporters_setup is
@@ -122,6 +138,7 @@ end;]';
procedure drop_test_helper_package is
begin
execute immediate 'drop package test_reporters';
+ execute immediate 'drop package check_fail_escape';
end;
procedure reporters_cleanup is
@@ -146,5 +163,24 @@ end;]';
ut.expect(l_actual).to_be_like('%');
end;
+ procedure check_xml_failure_escaped(
+ a_reporter ut3.ut_output_reporter_base
+ ) is
+ l_results ut3.ut_varchar2_list;
+ l_actual clob;
+ begin
+ --Act
+ select *
+ bulk collect into l_results
+ from table( ut3.ut.run( 'check_fail_escape', a_reporter ) );
+ l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
+ --Assert
+ ut.expect(l_actual).to_be_like('%' (varchar2)%]'
+ ||q'[at "UT3$USER#.CHECK_FAIL_ESCAPE%", line % ut3.ut.expect('test').to_equal('');]'
+ ||'%]]>%'
+ );
+ end;
+
end reporters;
/
diff --git a/test/ut3_user/reporters.pks b/test/ut3_user/reporters.pks
index cb601cf3b..54800fa4a 100644
--- a/test/ut3_user/reporters.pks
+++ b/test/ut3_user/reporters.pks
@@ -14,5 +14,9 @@ create or replace package reporters is
a_client_character_set varchar2
);
+ procedure check_xml_failure_escaped(
+ a_reporter ut3.ut_output_reporter_base
+ );
+
end reporters;
/
diff --git a/test/ut3_user/reporters/test_documentation_reporter.pkb b/test/ut3_user/reporters/test_documentation_reporter.pkb
index 394594fa4..a1f895947 100644
--- a/test/ut3_user/reporters/test_documentation_reporter.pkb
+++ b/test/ut3_user/reporters/test_documentation_reporter.pkb
@@ -1 +1 @@
-create or replace package body test_documentation_reporter as
procedure report_produces_expected_out is
l_results ut3.ut_varchar2_list;
l_actual clob;
l_expected varchar2(32767):=q'[%org
utplsql
tests
helpers
A suite for testing different outcomes from reporters
A description of some context
passing_test [% sec]
a test with failing assertion [% sec] (FAILED - 1)
a test raising unhandled exception [% sec] (FAILED - 2)
a disabled test [0 sec] (DISABLED)
%
Failures:
%
1) failing_test
"Fails as values are different"
Actual: 'number [1] ' (varchar2) was expected to equal: 'number [2] ' (varchar2)%
at "UT3$USER#.TEST_REPORTERS%", line 36 ut3.ut.expect('number [1] ','Fails as values are different').to_equal('number [2] ');
%
%
2) erroring_test
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "UT3$USER#.TEST_REPORTERS", line 44%
ORA-06512: at line 6
Finished in % seconds
4 tests, 1 failed, 1 errored, 1 disabled, 0 warning(s)%]';
begin
select *
bulk collect into l_results
from table(
ut3.ut.run(
'test_reporters',
ut3.ut_documentation_reporter()
)
);
l_actual := ut3_tester_helper.main_helper.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;
/
\ No newline at end of file
+create or replace package body test_documentation_reporter as
procedure report_produces_expected_out is
l_results ut3.ut_varchar2_list;
l_actual clob;
l_expected varchar2(32767):=q'[%org
utplsql
tests
helpers
A suite for testing different outcomes from reporters
A description of some context
passing_test [% sec]
a test with failing assertion [% sec] (FAILED - 1)
a test raising unhandled exception [% sec] (FAILED - 2)
a disabled test [0 sec] (DISABLED)
%
Failures:
%
1) failing_test
"Fails as values are different"
Actual: 'number [1] ' (varchar2) was expected to equal: 'number [2] ' (varchar2)%
at "UT3$USER#.TEST_REPORTERS%", line 36 ut3.ut.expect('number [1] ','Fails as values are different').to_equal('number [2] ');
%
%
2) erroring_test
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "UT3$USER#.TEST_REPORTERS", line 44%
ORA-06512: at line 6
Finished in % seconds
4 tests, 1 failed, 1 errored, 1 disabled, 0 warning(s)%]';
begin
select *
bulk collect into l_results
from table(
ut3.ut.run(
'test_reporters',
ut3.ut_documentation_reporter()
)
);
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;
end;
/
\ No newline at end of file
diff --git a/test/ut3_user/reporters/test_junit_reporter.pkb b/test/ut3_user/reporters/test_junit_reporter.pkb
index b86bb698c..e1b790156 100644
--- a/test/ut3_user/reporters/test_junit_reporter.pkb
+++ b/test/ut3_user/reporters/test_junit_reporter.pkb
@@ -72,23 +72,6 @@ create or replace package body test_junit_reporter as
execute immediate q'[create or replace package body Tst_Fix_Case_Sensitive as
procedure bUgFiX is begin ut.expect(1).to_equal(1); end;
end;]';
-
- execute immediate q'[create or replace package check_fail_escape is
- --%suitepath(core)
- --%suite(checkfailedescape)
- --%displayname(Check JUNIT XML failure is escaped)
-
- --%test(Fail Miserably)
- procedure fail_miserably;
-
- end;]';
-
- execute immediate q'[create or replace package body check_fail_escape is
- procedure fail_miserably is
- begin
- ut3.ut.expect('test').to_equal('');
- end;
- end;]';
end;
@@ -134,19 +117,6 @@ create or replace package body test_junit_reporter as
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_junit_reporting',ut3.ut_junit_reporter()));
- l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%at "%.CHECK_JUNIT_REPORTING%", line %');
- end;
-
procedure check_classname_suite is
l_results ut3.ut_varchar2_list;
l_actual clob;
@@ -302,13 +272,7 @@ create or replace package body test_junit_reporter as
l_results ut3.ut_varchar2_list;
l_actual clob;
begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_fail_escape',ut3.ut_junit_reporter()));
- l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%Actual: 'test' (varchar2) was expected to equal: '<![CDATA[some stuff]]>' (varchar2)%');
+ reporters.check_xml_failure_escaped(ut3.ut_junit_reporter());
end;
procedure check_classname_is_populated is
@@ -345,7 +309,6 @@ create or replace package body test_junit_reporter as
execute immediate 'drop package check_junit_rep_suitepath';
execute immediate 'drop package tst_package_junit_nodesc';
execute immediate 'drop package tst_package_junit_nosuite';
- execute immediate 'drop package check_fail_escape';
execute immediate 'drop package Tst_Fix_Case_Sensitive';
end;
diff --git a/test/ut3_user/reporters/test_junit_reporter.pks b/test/ut3_user/reporters/test_junit_reporter.pks
index 8af2ba430..71443c180 100644
--- a/test/ut3_user/reporters/test_junit_reporter.pks
+++ b/test/ut3_user/reporters/test_junit_reporter.pks
@@ -15,9 +15,6 @@ create or replace package test_junit_reporter as
--%test(Xunit Backward Compatibility - Reports only failed expectations and exceptions)
procedure reports_xunit_only_fail_or_err;
- --%test(Reports failed line of test)
- procedure reports_failed_line;
-
--%test(Check that classname is returned correct suite)
procedure check_classname_suite;
diff --git a/test/ut3_user/reporters/test_sonar_test_reporter.pkb b/test/ut3_user/reporters/test_sonar_test_reporter.pkb
index 76cec84c8..357eff0a2 100644
--- a/test/ut3_user/reporters/test_sonar_test_reporter.pkb
+++ b/test/ut3_user/reporters/test_sonar_test_reporter.pkb
@@ -32,5 +32,10 @@ create or replace package body test_sonar_test_reporter as
reporters.check_xml_encoding_included(ut3.ut_sonar_test_reporter(), 'UTF-8');
end;
+ procedure check_failure_escaped is
+ begin
+ reporters.check_xml_failure_escaped(ut3.ut_sonar_test_reporter());
+ end;
+
end;
/
diff --git a/test/ut3_user/reporters/test_sonar_test_reporter.pks b/test/ut3_user/reporters/test_sonar_test_reporter.pks
index 0c2fdf70a..ade449dba 100644
--- a/test/ut3_user/reporters/test_sonar_test_reporter.pks
+++ b/test/ut3_user/reporters/test_sonar_test_reporter.pks
@@ -9,5 +9,8 @@ create or replace package test_sonar_test_reporter as
--%test(Includes XML header with encoding when encoding provided)
procedure check_encoding_included;
+ --%test( Validate that fail with special char are escaped )
+ procedure check_failure_escaped;
+
end;
/
diff --git a/test/ut3_user/reporters/test_tfs_junit_reporter.pkb b/test/ut3_user/reporters/test_tfs_junit_reporter.pkb
index 623dda51e..196a2ec08 100644
--- a/test/ut3_user/reporters/test_tfs_junit_reporter.pkb
+++ b/test/ut3_user/reporters/test_tfs_junit_reporter.pkb
@@ -48,25 +48,7 @@ create or replace package body test_tfs_junit_reporter as
null;
end;
end;]';
-
- execute immediate q'[create or replace package check_fail_escape is
- --%suitepath(core)
- --%suite(checkfailedescape)
- --%displayname(Check JUNIT XML failure is escaped)
-
- --%test(Fail Miserably)
- procedure fail_miserably;
-
- end;]';
-
- execute immediate q'[create or replace package body check_fail_escape is
- procedure fail_miserably is
- begin
- ut3.ut.expect('test').to_equal('');
- end;
- end;]';
-
end;
@@ -98,19 +80,6 @@ create or replace package body test_tfs_junit_reporter as
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_junit_reporting',ut3.ut_tfs_junit_reporter()));
- l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%at "%.CHECK_JUNIT_REPORTING%", line %');
- end;
-
procedure check_classname_suite is
l_results ut3.ut_varchar2_list;
l_actual clob;
@@ -165,16 +134,8 @@ create or replace package body test_tfs_junit_reporter as
end;
procedure check_failure_escaped is
- l_results ut3.ut_varchar2_list;
- l_actual clob;
begin
- --Act
- select *
- bulk collect into l_results
- from table(ut3.ut.run('check_fail_escape',ut3.ut_tfs_junit_reporter()));
- l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
- --Assert
- ut.expect(l_actual).to_be_like('%Actual: 'test' (varchar2) was expected to equal: '<![CDATA[some stuff]]>' (varchar2)%');
+ reporters.check_xml_failure_escaped(ut3.ut_tfs_junit_reporter());
end;
procedure check_classname_suitepath is
@@ -195,7 +156,6 @@ create or replace package body test_tfs_junit_reporter as
execute immediate 'drop package check_junit_reporting';
execute immediate 'drop package check_junit_rep_suitepath';
execute immediate 'drop package check_junit_flat_suitepath';
- execute immediate 'drop package check_fail_escape';
end;
procedure check_encoding_included is
diff --git a/test/ut3_user/reporters/test_tfs_junit_reporter.pks b/test/ut3_user/reporters/test_tfs_junit_reporter.pks
index af6227283..07acb4d21 100644
--- a/test/ut3_user/reporters/test_tfs_junit_reporter.pks
+++ b/test/ut3_user/reporters/test_tfs_junit_reporter.pks
@@ -12,9 +12,6 @@ create or replace package test_tfs_junit_reporter as
--%test(Reports only failed expectations and exceptions)
procedure reports_only_failed_or_errored;
- --%test(Reports failed line of test)
- procedure reports_failed_line;
-
--%test(Check that classname is returned correct suite)
procedure check_classname_suite;