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

Skip to content

Commit 026cc62

Browse files
committed
Final modifications
Added reporting of expected/actual value Shrinked failure reporting to the first error report
1 parent 51bb0a9 commit 026cc62

4 files changed

Lines changed: 58 additions & 50 deletions

File tree

source/install.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,12 @@ whenever oserror exit failure rollback
137137

138138

139139
prompt Validating installation
140+
-- erors only. ignore warnings
140141
select * from user_errors
141142
where name not like 'BIN$%' --not recycled
142143
and (name like 'UT%' or name in ('BE_FALSE','BE_LIKE','BE_NOT_NULL','BE_NULL','BE_TRUE','EQUAL','MATCH')) -- utplsql objects
143-
and attribute = 'ERROR'; -- erors only. ignore warnings
144+
and attribute = 'ERROR'
145+
/
144146

145147
declare
146148
l_cnt integer;

source/reporters/ut_teamcity_reporter.tpb

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,37 @@ create or replace type body ut_teamcity_reporter is
77
end;
88

99
overriding member procedure before_suite(self in out nocopy ut_teamcity_reporter, a_suite in ut_object) is
10+
l_test_object ut_test_object := treat(a_suite as ut_test_object);
1011
begin
1112

12-
ut_teamcity_reporter_printer.test_suite_started(a_suite_name => coalesce(replace(treat(a_suite as ut_test_object).name
13-
,'.')
14-
,treat(a_suite as ut_test_object)
15-
.object_name));
16-
end;
13+
ut_teamcity_reporter_printer.test_suite_started(a_suite_name => coalesce(replace(l_test_object.name, '.')
14+
,l_test_object.object_name));
15+
end before_suite;
1716

1817
overriding member procedure after_suite(self in out nocopy ut_teamcity_reporter, a_suite in ut_object) is
18+
l_test_object ut_test_object := treat(a_suite as ut_test_object);
1919
begin
20-
ut_teamcity_reporter_printer.test_suite_finished(a_suite_name => coalesce(replace(treat(a_suite as ut_test_object).name
21-
,'.')
22-
,treat(a_suite as ut_test_object)
23-
.object_name));
24-
end;
20+
ut_teamcity_reporter_printer.test_suite_finished(a_suite_name => coalesce(replace(l_test_object.name, '.')
21+
,l_test_object.object_name));
22+
end after_suite;
2523

2624
overriding member procedure before_suite_item(self in out nocopy ut_teamcity_reporter, a_suite in ut_object, a_item_index pls_integer) is
27-
l_suite ut_test_suite;
28-
l_item ut_test_object;
25+
l_suite ut_test_suite;
26+
l_item ut_test_object;
27+
l_test ut_test;
28+
l_test_full_name varchar2(4000);
2929
begin
3030
l_suite := treat(a_suite as ut_test_suite);
3131
l_item := treat(l_suite.items(a_item_index) as ut_test_object);
3232

3333
if l_item is of(ut_test) then
34-
null;
35-
--ut_teamcity_reporter_printer.test_started(a_test_name => l_suite.object_name || ':' || l_item.object_name);
34+
l_test := treat(l_item as ut_test);
35+
l_test_full_name := nvl(replace(l_suite.name, '.'), l_suite.object_name) || ':' ||
36+
nvl(replace(l_test.name, '.'), l_test.object_name);
37+
ut_teamcity_reporter_printer.test_started(a_test_name => l_test_full_name);
3638
end if;
37-
l_suite := null;
38-
l_item := null;
39-
end;
39+
40+
end before_suite_item;
4041

4142
overriding member procedure after_suite_item(self in out nocopy ut_teamcity_reporter, a_suite in ut_object, a_item_index pls_integer) is
4243
l_suite ut_test_suite;
@@ -57,36 +58,37 @@ create or replace type body ut_teamcity_reporter is
5758
l_test_full_name := nvl(replace(l_suite.name, '.'), l_suite.object_name) || ':' ||
5859
nvl(replace(l_item.name, '.'), l_test.object_name);
5960

60-
--l_test_full_name := nvl(l_suite.object_name || ':' || l_item.object_name;
61-
62-
if l_test.items is not null and l_test.items.count > 0 then
63-
for i in 1 .. l_test.items.count loop
64-
65-
l_assert := treat(l_test.items(i) as ut_assert_result);
66-
67-
l_assert_full_name := l_test_full_name || '.' || nvl(replace(l_assert.name, '.'), 'assert' || to_char(i));
68-
69-
ut_teamcity_reporter_printer.test_started(a_test_name => l_assert_full_name);
70-
71-
if nvl(l_assert.result, ut_utils.tr_error) != ut_utils.tr_success then
72-
ut_teamcity_reporter_printer.test_failed(a_test_name => l_assert_full_name, a_msg => l_assert.message);
73-
end if;
74-
75-
ut_teamcity_reporter_printer.test_finished(a_test_name => l_assert_full_name);
76-
77-
end loop;
61+
if l_test.result = ut_utils.tr_ignore then
62+
ut_teamcity_reporter_printer.test_ignored(l_test_full_name);
63+
else
64+
65+
if l_test.items is not null and l_test.items.count > 0 then
66+
for i in 1 .. l_test.items.count loop
67+
68+
l_assert := treat(l_test.items(i) as ut_assert_result);
69+
70+
if nvl(l_assert.result, ut_utils.tr_error) != ut_utils.tr_success then
71+
ut_teamcity_reporter_printer.test_failed(a_test_name => l_test_full_name
72+
,a_msg => l_assert.message
73+
,a_expected => l_assert.expected_value_string
74+
,a_actual => l_assert.actual_value_string);
75+
exit;
76+
end if;
77+
78+
end loop;
79+
elsif l_test.result = ut_utils.tr_failure then
80+
ut_teamcity_reporter_printer.test_failed(a_test_name => l_test_full_name, a_msg => 'Test failed');
81+
elsif l_test.result = ut_utils.tr_error then
82+
ut_teamcity_reporter_printer.test_failed(a_test_name => l_test_full_name, a_msg => 'Error occured');
83+
end if;
84+
85+
ut_teamcity_reporter_printer.test_finished(l_test_full_name
86+
,a_test_duration_milisec => trunc(l_test.execution_time * 1e3));
87+
7888
end if;
7989

80-
/*
81-
if nvl(l_test.result, ut_utils.tr_error) != ut_utils.tr_success then
82-
ut_teamcity_reporter_printer.test_failed(a_test_name => l_test_full_name);
83-
end if;
84-
85-
ut_teamcity_reporter_printer.test_finished(a_test_name => l_test_full_name
86-
,a_test_duration_milisec => trunc(l_test.execution_time * 1e3));
87-
*/
8890
end if;
89-
end;
91+
end after_suite_item;
9092

9193
end;
9294
/

source/reporters/ut_teamcity_reporter_printer.pkb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ create or replace package body ut_teamcity_reporter_printer is
1414
l_value varchar2(32767);
1515
begin
1616
l_message := '##teamcity[' || a_command || ' timestamp=''' ||
17-
regexp_replace(to_char(systimestamp, 'YYYY-MM-DD"T"HH24:MI:ss.FFTZHTZM')
18-
,'(\.\d{3})\d+(\+)'
19-
,'\1\2') || '''';
17+
regexp_replace(to_char(systimestamp, 'YYYY-MM-DD"T"HH24:MI:ss.FFTZHTZM'), '(\.\d{3})\d+(\+)', '\1\2') || '''';
2018

2119
l_index := a_props.first;
2220
while l_index is not null loop
@@ -94,13 +92,19 @@ create or replace package body ut_teamcity_reporter_printer is
9492
l_props('flowId') := a_flow_id;
9593
message('testIgnored', l_props);
9694
end;
97-
procedure test_failed(a_test_name varchar2, a_msg in varchar2 default null, a_details varchar2 default null, a_flow_id varchar2 default null) is
95+
procedure test_failed(a_test_name varchar2, a_msg in varchar2 default null, a_details varchar2 default null, a_flow_id varchar2 default null, a_actual varchar2 default null, a_expected varchar2 default null) is
9896
l_props t_props;
9997
begin
10098
l_props('name') := a_test_name;
10199
l_props('message') := a_msg;
102100
l_props('details') := a_details;
103101
l_props('flowId') := a_flow_id;
102+
103+
if a_actual is not null and a_expected is not null then
104+
l_props('actual') := a_actual;
105+
l_props('expected') := a_expected;
106+
end if;
107+
104108
message('testFailed', l_props);
105109
end;
106110
procedure test_std_out(a_test_name varchar2, a_out in varchar2, a_flow_id in varchar2 default null) is

source/reporters/ut_teamcity_reporter_printer.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ create or replace package ut_teamcity_reporter_printer is
99
procedure test_started(a_test_name varchar2, a_capture_standard_output boolean default null, a_flow_id varchar2 default null);
1010
procedure test_finished(a_test_name varchar2, a_test_duration_milisec number default null, a_flow_id varchar2 default null);
1111
procedure test_ignored(a_test_name varchar2, a_flow_id varchar2 default null);
12-
procedure test_failed(a_test_name varchar2, a_msg in varchar2 default null, a_details varchar2 default null, a_flow_id varchar2 default null);
12+
procedure test_failed(a_test_name varchar2, a_msg in varchar2 default null, a_details varchar2 default null, a_flow_id varchar2 default null, a_actual varchar2 default null, a_expected varchar2 default null);
1313
procedure test_std_out(a_test_name varchar2, a_out in varchar2, a_flow_id in varchar2 default null);
1414
procedure test_std_err(a_test_name varchar2, a_out in varchar2, a_flow_id in varchar2 default null);
1515

0 commit comments

Comments
 (0)