@@ -31,12 +31,26 @@ create or replace package body test_teamcity_reporter as
3131 end;
3232 end;]';
3333
34+ execute immediate q'[create or replace package check_multiple_failures is
35+ --%suite
36+
37+ --%test
38+ procedure multi_failure;
39+ end;]';
40+ execute immediate q'[create or replace package body check_multiple_failures is
41+ procedure multi_failure is
42+ begin
43+ ut3_develop.ut.expect(1).to_be_null;
44+ ut3_develop.ut.expect(2).to_equal(1);
45+ ut3_develop.ut.expect('Bad').to_equal('Good');
46+ end;
47+ end;]';
48+
3449 end;
3550
3651
3752 procedure report_produces_expected_out is
3853 l_output_data ut3_develop.ut_varchar2_list;
39- l_output clob;
4054 l_expected varchar2(32767);
4155 begin
4256 l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='org']
@@ -84,7 +98,6 @@ create or replace package body test_teamcity_reporter as
8498
8599 procedure escape_special_chars is
86100 l_output_data ut3_develop.ut_varchar2_list;
87- l_output clob;
88101 l_expected varchar2(32767);
89102 begin
90103 l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='A suite with |'quote|'']
@@ -103,7 +116,6 @@ create or replace package body test_teamcity_reporter as
103116
104117 procedure trims_long_output is
105118 l_output_data ut3_develop.ut_varchar2_list;
106- l_output clob;
107119 l_expected varchar2(32767);
108120 begin
109121 l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='check_trims_long_output']
@@ -120,11 +132,32 @@ create or replace package body test_teamcity_reporter as
120132 ut.expect(ut3_tester_helper.main_helper.table_to_clob(l_output_data)).to_be_like(l_expected);
121133 end;
122134
135+ procedure report_mutiple_expectations is
136+ l_output_data ut3_develop.ut_varchar2_list;
137+ l_expected varchar2(32767);
138+ begin
139+ l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='check_multiple_failures']
140+ %##teamcity[testStarted timestamp='%' captureStandardOutput='true' name='ut3_user.check_multiple_failures.multi_failure']
141+ %##teamcity[testFailed timestamp='%' details='Actual: 1 (number) was expected to be null' name='ut3_user.check_multiple_failures.multi_failure']
142+ %##teamcity[testFailed timestamp='%' details='Actual: 2 (number) was expected to equal: 1 (number)' name='ut3_user.check_multiple_failures.multi_failure']
143+ %##teamcity[testFailed timestamp='%' details='Actual: |'Bad|' (varchar2) was expected to equal: |'Good|' (varchar2)' name='ut3_user.check_multiple_failures.multi_failure']
144+ %##teamcity[testFinished timestamp='%' duration='%' name='ut3_user.check_multiple_failures.multi_failure']
145+ %##teamcity[testSuiteFinished timestamp='%' name='check_multiple_failures']}';
146+ --act
147+ select *
148+ bulk collect into l_output_data
149+ from table(ut3_develop.ut.run('check_multiple_failures',ut3_develop.ut_teamcity_reporter()));
150+
151+ --assert
152+ ut.expect(ut3_tester_helper.main_helper.table_to_clob(l_output_data)).to_be_like(l_expected);
153+ end;
154+
123155 procedure remove_test_package is
124156 pragma autonomous_transaction;
125157 begin
126158 execute immediate 'drop package check_escape_special_chars';
127159 execute immediate 'drop package check_trims_long_output';
160+ execute immediate 'drop package check_multiple_failures';
128161 end;
129162
130163end;
0 commit comments