Skip to content

Commit 767b4bb

Browse files
authored
Merge pull request #500 from utPLSQL/feature/reporters_improvements
Fixed XML/HTML special characters in reportersand XUnit failures reporting
2 parents 0bacde4 + 01d93f3 commit 767b4bb

File tree

45 files changed

+251
-153
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+251
-153
lines changed

examples/developer_examples/RunExampleTestSuite.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ begin
4444
dbms_output.put_line('Test:' || test_item.item.form_name);
4545
dbms_output.put_line('Result: ' || ut_utils.test_result_to_char(test_item.result));
4646
dbms_output.put_line('expectation Results:');
47-
for i in test_item.results.first .. test_item.results.last loop
48-
expectation := test_item.results(i);
47+
for i in 1 .. test_item.failed_expectations.count loop
48+
expectation := test_item.failed_expectations(i);
4949
dbms_output.put_line(i || ' - result: ' || ut_utils.test_result_to_char(expectation.result));
5050
dbms_output.put_line(i || ' - Message: ' || expectation.message);
5151
end loop;

old_tests/ut_annotations/ut_annotations.parse_package_annotations.ParseAnnotationParamsWithBrackets.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ END;';
2424
if ut_expectation_processor.get_status = ut_utils.tr_success then
2525
:test_result := ut_utils.tr_success;
2626
else
27-
l_results := ut_expectation_processor.get_expectations_results();
27+
l_results := ut_expectation_processor.get_failed_expectations();
2828
for i in 1 .. l_results.count loop
2929
dbms_output.put_line(l_results(i).message);
3030
end loop;

old_tests/ut_expectations/common/ut.expect.to_equal.different_scalars.common.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ begin
88
--Act
99
ut.expect(l_actual).&&5.to_equal(l_expected);
1010
l_result := ut_expectation_processor.get_status();
11-
l_message := ut_expectation_processor.get_expectations_results()(1).get_result_clob;
11+
l_message := ut_expectation_processor.get_failed_expectations()(1).get_result_clob;
1212
--Assert
1313
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_failure
1414
and l_message like 'Actual (%) cannot be compared to Expected (%) using matcher%' then

old_tests/ut_expectations/common/ut.expect.to_equal.scalar.null_value_text.common.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ declare
66
begin
77
--Act
88
ut.expect(l_actual).to_equal(l_expected);
9-
l_result := ut_expectation_processor.get_expectations_results()(1);
9+
l_result := ut_expectation_processor.get_failed_expectations()(1);
1010
--Assert
1111
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result.get_result_clob like '&&4' then
1212
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ declare
77
begin
88
--Act
99
ut.expect(l_actual, l_test_description ).to_equal( l_expected);
10-
l_results := ut_expectation_processor.get_expectations_results();
10+
l_results := ut_expectation_processor.get_failed_expectations();
1111
--Assert
1212
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success
1313
and treat(l_results(1) as ut_expectation_result).description like '' || l_test_description || '' then

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesFailureWhenComparingDifferentObjects.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ begin
1212
if l_result = ut_utils.tr_failure then
1313
:test_result := ut_utils.tr_success;
1414
else
15-
dbms_output.put_line( substr(ut_expectation_processor.get_expectations_results()(1).get_result_clob(),1,32767) );
15+
dbms_output.put_line( substr(ut_expectation_processor.get_failed_expectations()(1).get_result_clob(),1,32767) );
1616
end if;
1717
end;
1818
/

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesFailureWhenComparingObejctToCollection.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ begin
1212
if l_result = ut_utils.tr_failure then
1313
:test_result := ut_utils.tr_success;
1414
else
15-
dbms_output.put_line( substr(ut_expectation_processor.get_expectations_results()(1).get_result_clob(),1,32767) );
15+
dbms_output.put_line( substr(ut_expectation_processor.get_failed_expectations()(1).get_result_clob(),1,32767) );
1616
end if;
1717
end;
1818
/

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesSuccessWithExcludedCollectionAttributes.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ begin
1111

1212
ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected), a_exclude=>ut_varchar2_list('VALUE'));
1313
l_result := ut_expectation_processor.get_status();
14-
l_results_details := ut_expectation_processor.get_expectations_results();
14+
l_results_details := ut_expectation_processor.get_failed_expectations();
1515
--Assert
1616
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1717
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesSuccessWithExcludedCollectionAttributesXPath.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ begin
1414
a_exclude=>ut_varchar2_list('/UT_KEY_VALUE_PAIRS/UT_KEY_VALUE_PAIR/VALUE')
1515
);
1616
l_result := ut_expectation_processor.get_status();
17-
l_results_details := ut_expectation_processor.get_expectations_results();
17+
l_results_details := ut_expectation_processor.get_failed_expectations();
1818
--Assert
1919
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
2020
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesSuccessWithExcludedObjectAttributes.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ begin
1111

1212
ut.expect(anydata.convertObject(l_actual)).to_equal(anydata.convertObject(l_expected), a_exclude=>'VALUE');
1313
l_result := ut_expectation_processor.get_status();
14-
l_results_details := ut_expectation_processor.get_expectations_results();
14+
l_results_details := ut_expectation_processor.get_failed_expectations();
1515
--Assert
1616
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1717
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.anydata.GivesSuccessWithExcludedObjectAttributesXPath.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ begin
1111

1212
ut.expect(anydata.convertObject(l_actual)).to_equal(anydata.convertObject(l_expected), a_exclude=>'/UT_KEY_VALUE_PAIR/VALUE');
1313
l_result := ut_expectation_processor.get_status();
14-
l_results_details := ut_expectation_processor.get_expectations_results();
14+
l_results_details := ut_expectation_processor.get_failed_expectations();
1515
--Assert
1616
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1717
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.anydata.PutsObjectStrucureIntoResult.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ declare
88
begin
99
--Act
1010
ut.expect( anydata.convertObject(l_actual) ).to_equal( anydata.convertObject(l_expected) );
11-
l_assert_result := treat(ut_expectation_processor.get_expectations_results()(1) as ut_expectation_result);
11+
l_assert_result := treat(ut_expectation_processor.get_failed_expectations()(1) as ut_expectation_result);
1212

1313
--Assert
1414
if l_assert_result.message like q'[Actual:%

old_tests/ut_expectations/ut.expect.to_equal.cursor.ExcludeColumnNameListIsCaseSensitive.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ begin
1111
open l_expected for select 'a' as "A_Column", 'd' as A_COLUMN, 'x' SOME_COL, 'c' "Some_Col" from dual;
1212
ut.expect(l_actual).to_equal(l_expected, a_exclude=>ut_varchar2_list('A_COLUMN','Some_Col'));
1313
l_result := ut_expectation_processor.get_status();
14-
l_results_details := ut_expectation_processor.get_expectations_results();
14+
l_results_details := ut_expectation_processor.get_failed_expectations();
1515
--Assert
1616
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1717
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.cursor.ExcludeColumnNamesAreCaseSensitive.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ begin
1111
open l_expected for select 'a' as "A_Column", 'd' as A_COLUMN, 'x' SOME_COL, 'c' "Some_Col" from dual;
1212
ut.expect(l_actual).to_equal(l_expected, a_exclude=>'A_COLUMN,Some_Col');
1313
l_result := ut_expectation_processor.get_status();
14-
l_results_details := ut_expectation_processor.get_expectations_results();
14+
l_results_details := ut_expectation_processor.get_failed_expectations();
1515
--Assert
1616
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1717
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.cursor.ExcludeColumnsXPathIsCaseSensitive.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ begin
1010
open l_expected for select 'a' as "A_Column", 'd' as A_COLUMN, 'x' SOME_COL, 'c' "Some_Col" from dual;
1111
ut.expect(l_actual).to_equal(l_expected, a_exclude=>'/ROW/A_COLUMN|/ROW/Some_Col');
1212
l_result := ut_expectation_processor.get_status();
13-
l_results_details := ut_expectation_processor.get_expectations_results();
13+
l_results_details := ut_expectation_processor.get_failed_expectations();
1414
--Assert
1515
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_result = ut_utils.tr_success then
1616
:test_result := ut_utils.tr_success;

old_tests/ut_expectations/ut.expect.to_equal.cursor.ReturnsCursorDataForFailure.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ begin
1010
open l_expected for select * from user_objects where rownum <=3;
1111
ut.expect(l_actual).to_equal(l_expected);
1212

13-
l_result := treat( ut_expectation_processor.get_expectations_results()(1) as ut_expectation_result );
13+
l_result := treat( ut_expectation_processor.get_failed_expectations()(1) as ut_expectation_result );
1414
--Assert
1515
if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success
1616
and l_result.message like q'[Actual:%

old_tests/ut_expectations/ut.expect.to_equal.with_text.GivesTheProvidedTextAsMessage.sql

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'blob' 'to_blob(''abc'')' 'to_blob(''abc'')'"
2-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'boolean' 'true' 'true'"
3-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'clob' '''abc''' '''abc'''"
4-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'date' 'sysdate' 'sysdate'"
5-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'number' '1' '1'"
6-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp' 'sysdate' 'sysdate'"
7-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp with local time zone' 'sysdate' 'sysdate'"
8-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp with time zone' 'sysdate' 'sysdate'"
9-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'varchar2(100)' '''abc''' '''abc'''"
10-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'interval day to second' '''2 01:00:00''' '''2 01:00:00'''"
11-
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'interval year to month' '''1-1''' '''1-1'''"
1+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'blob' 'to_blob(''abcd'')' 'to_blob(''abc'')'"
2+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'boolean' 'false' 'true'"
3+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'clob' '''abcd''' '''abc'''"
4+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'date' 'sysdate-1' 'sysdate'"
5+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'number' '2' '1'"
6+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp' 'sysdate-1' 'sysdate'"
7+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp with local time zone' 'sysdate-1' 'sysdate'"
8+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'timestamp with time zone' 'sysdate-1' 'sysdate'"
9+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'varchar2(100)' '''abcd''' '''abc'''"
10+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'interval day to second' '''2 01:01:00''' '''2 01:00:00'''"
11+
@@lib/RunTest.sql "ut_expectations/common/ut.expect.to_equal.scalar.with_message.common.sql 'interval year to month' '''1-2''' '''1-1'''"
1212

1313

1414

old_tests/ut_output_buffer/get_lines.RecievesALineFromBufferTableAndDeletes.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ begin
2020
if ut_expectation_processor.get_status = ut_utils.tr_success then
2121
:test_result := ut_utils.tr_success;
2222
else
23-
dbms_output.put_line(ut_expectation_processor.get_expectations_results()(1).get_result_clob);
23+
dbms_output.put_line(ut_expectation_processor.get_failed_expectations()(1).get_result_clob);
2424
end if;
2525

2626
delete from ut_output_buffer_tmp where reporter_id = l_reporter.reporter_id;

old_tests/ut_output_buffer/get_lines.WaitsForTheDataToAppearForSpecifiedTime.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ begin
2020
if ut_expectation_processor.get_status = ut_utils.tr_success then
2121
:test_result := ut_utils.tr_success;
2222
else
23-
dbms_output.put_line(ut_expectation_processor.get_expectations_results()(1).get_result_clob);
23+
dbms_output.put_line(ut_expectation_processor.get_failed_expectations()(1).get_result_clob);
2424
end if;
2525

2626
delete from ut_output_buffer_tmp where reporter_id = l_reporter.reporter_id;

old_tests/ut_output_buffer/send_line.DoesNotSendLineIfNullReporterIdGiven.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ begin
1212
if ut_expectation_processor.get_status = ut_utils.tr_success then
1313
:test_result := ut_utils.tr_success;
1414
else
15-
dbms_output.put_line(ut_expectation_processor.get_expectations_results()(1).get_result_clob);
15+
dbms_output.put_line(ut_expectation_processor.get_failed_expectations()(1).get_result_clob);
1616
end if;
1717

1818
end;

old_tests/ut_output_buffer/send_line.DoesNotSendLineIfNullTextGiven.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ begin
1313
if ut_expectation_processor.get_status = ut_utils.tr_success then
1414
:test_result := ut_utils.tr_success;
1515
else
16-
dbms_output.put_line(ut_expectation_processor.get_expectations_results()(1).get_result_clob);
16+
dbms_output.put_line(ut_expectation_processor.get_failed_expectations()(1).get_result_clob);
1717
end if;
1818

1919
end;

old_tests/ut_output_buffer/send_line.SendsALineIntoBufferTable.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ begin
1414
if ut_expectation_processor.get_status = ut_utils.tr_success then
1515
:test_result := ut_utils.tr_success;
1616
else
17-
dbms_output.put_line(ut_expectation_processor.get_expectations_results()(1).get_result_clob);
17+
dbms_output.put_line(ut_expectation_processor.get_failed_expectations()(1).get_result_clob);
1818
end if;
1919

2020
delete from ut_output_buffer_tmp where reporter_id = l_reporter.reporter_id;

old_tests/ut_suite_manager/ut_suite_manager.AllowsDescriptionsWithComma.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ begin
4949
ut.expect(l_test.description).to_equal('A test description, though with comma, is assigned by suite_manager');
5050

5151

52-
l_results := ut_expectation_processor.get_expectations_results();
52+
l_results := ut_expectation_processor.get_failed_expectations();
5353

5454
:test_result := ut_utils.tr_success;
5555
for i in 1 .. l_results.count loop

old_tests/ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByName.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ begin
5151
declare
5252
l_results ut_expectation_results;
5353
begin
54-
l_results := ut_expectation_processor.get_expectations_results;
54+
l_results := ut_expectation_processor.get_failed_expectations;
5555
for i in 1..l_results.count loop
5656
if l_results(i).result > ut_utils.tr_success then
5757
dbms_output.put_line(l_results(i).get_result_clob);

old_tests/ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByNameCurUser.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ begin
5151
declare
5252
l_results ut_expectation_results;
5353
begin
54-
l_results := ut_expectation_processor.get_expectations_results;
54+
l_results := ut_expectation_processor.get_failed_expectations;
5555
for i in 1..l_results.count loop
5656
if l_results(i).result > ut_utils.tr_success then
5757
dbms_output.put_line(l_results(i).get_result_clob);

old_tests/ut_test_suite/ut_test_suite.DisabledFlagSkipSuite.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ begin
3232
dbms_output.put_line(
3333
xmltype(
3434
anydata.convertcollection(
35-
ut_expectation_processor.get_expectations_results()
35+
ut_expectation_processor.get_failed_expectations()
3636
)
3737
).getclobval()
3838
);

source/core/types/ut_test.tpb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ create or replace type body ut_test as
9999
self.result := ut_utils.tr_error;
100100
end if;
101101
--expectation results need to be part of test results
102-
self.results := ut_expectation_processor.get_expectations_results();
102+
self.expectations_count := ut_expectation_processor.get_expectations_count();
103+
self.failed_expectations := ut_expectation_processor.get_failed_expectations();
103104
self.results_count.set_counter_values(self.result);
104105
end;
105106

source/core/types/ut_test.tps

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,14 @@ create or replace type ut_test under ut_suite_item (
4040
*/
4141
after_each ut_executable,
4242
/**
43-
* The list of expectation results as well as database errors encountered while invoking
43+
* The list of failed expectation results as well as database errors encountered while invoking
4444
* The test procedure and the before_test/after_test blocks
4545
*/
46-
results ut_expectation_results,
46+
failed_expectations ut_expectation_results,
47+
/**
48+
* The count of all expectations executed in the test
49+
*/
50+
expectations_count integer,
4751
parent_error_stack_trace varchar2(4000),
4852
constructor function ut_test(
4953
self in out nocopy ut_test, a_object_owner varchar2 := null, a_object_name varchar2, a_name varchar2, a_description varchar2 := null,

source/core/ut_expectation_processor.pkb

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

55-
function get_expectations_results return ut_expectation_results is
55+
function get_expectations_count return integer is
56+
begin
57+
return g_expectations_called.count;
58+
end;
59+
60+
function get_failed_expectations return ut_expectation_results is
5661
l_expectations_results ut_expectation_results := ut_expectation_results();
5762
begin
58-
ut_utils.debug_log('ut_expectation_processor.get_expectations_results: .count='||g_expectations_called.count);
59-
l_expectations_results := g_expectations_called;
63+
ut_utils.debug_log('ut_expectation_processor.get_failed_expectations: g_expectations_called.count='||g_expectations_called.count);
64+
for i in 1 .. g_expectations_called.count loop
65+
if g_expectations_called(i).status > ut_utils.tr_success then
66+
l_expectations_results.extend;
67+
l_expectations_results(l_expectations_results.last) := g_expectations_called(i);
68+
end if;
69+
end loop;
70+
ut_utils.debug_log('ut_expectation_processor.get_failed_expectations: l_expectations_results.count='||g_expectations_called.count);
6071
clear_expectations();
6172
return l_expectations_results;
62-
end get_expectations_results;
73+
end get_failed_expectations;
6374

6475
procedure add_expectation_result(a_expectation_result ut_expectation_result) is
6576
begin

source/core/ut_expectation_processor.pks

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

2929
procedure clear_expectations;
3030

31-
function get_expectations_results return ut_expectation_results;
31+
function get_expectations_count return integer;
32+
33+
function get_failed_expectations return ut_expectation_results;
3234

3335
procedure add_expectation_result(a_expectation_result ut_expectation_result);
3436

source/reporters/ut_coverage_report_html_helper.pkb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ create or replace package body ut_coverage_report_html_helper is
106106
dbms_lob.createtemporary(l_result, true);
107107
l_coverage_pct := coverage_pct(a_coverage_unit.covered_lines, a_coverage_unit.uncovered_lines);
108108
l_file_part :=
109-
'<div class="source_table" id="'||a_object_id||'"><div class="header"> <h3>'||a_object_full_name||'</h3>' ||
109+
'<div class="source_table" id="'||a_object_id||'"><div class="header"> <h3>'||dbms_xmlgen.convert(a_object_full_name)||'</h3>' ||
110110
'<h4><span class="'||coverage_css_class(l_coverage_pct)||'">'||l_coverage_pct||' %</span> covered</h4>' ||
111111
'<div> <b>'||(a_coverage_unit.covered_lines+a_coverage_unit.uncovered_lines)||'</b> relevant lines. ' ||
112112
'<span class="green"><b>'||a_coverage_unit.covered_lines||'</b> lines covered</span> and ' ||
@@ -179,7 +179,7 @@ create or replace package body ut_coverage_report_html_helper is
179179
l_file_part :=
180180
chr(10)||
181181
'<tr>' ||
182-
'<td class="strong">'||link_to_source_file(l_unit)||'</td>' ||
182+
'<td class="strong">'||link_to_source_file(dbms_xmlgen.convert(l_unit))||'</td>' ||
183183
'<td class="'||coverage_css_class(l_coverage_pct)||' strong">'||l_coverage_pct||' %</td>' ||
184184
'<td>'||l_unit_coverage.total_lines||'</td>' ||
185185
'<td>'||(l_unit_coverage.covered_lines+l_unit_coverage.uncovered_lines)||'</td>' ||

source/reporters/ut_coverage_sonar_reporter.tpb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ create or replace type body ut_coverage_sonar_reporter is
6868
ut_utils.append_to_clob(l_result, c_coverage_header);
6969
l_unit := a_coverage_data.objects.first;
7070
while l_unit is not null loop
71-
l_file_part := '<file path="'||l_unit||'">'||chr(10);
71+
l_file_part := '<file path="'||dbms_xmlgen.convert(l_unit)||'">'||chr(10);
7272
ut_utils.append_to_clob(l_result, l_file_part);
7373

7474
dbms_lob.append(l_result,get_lines_xml(a_coverage_data.objects(l_unit)));

source/reporters/ut_documentation_reporter.tpb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,8 @@ create or replace type body ut_documentation_reporter is
110110

111111
self.print_red_text(ut_utils.table_to_clob(a_test.get_error_stack_traces()));
112112

113-
for j in 1 .. a_test.results.count loop
114-
if a_test.results(j).status > ut_utils.tr_success then
115-
print_failure_for_expectation(a_test.results(j));
116-
end if;
113+
for j in 1 .. a_test.failed_expectations.count loop
114+
print_failure_for_expectation(a_test.failed_expectations(j));
117115
end loop;
118116

119117
self.lvl := self.lvl - 3;

0 commit comments

Comments
 (0)