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

Skip to content

Commit 933f41a

Browse files
committed
Added TAP reporter and synonyms
1 parent e872b30 commit 933f41a

4 files changed

Lines changed: 119 additions & 0 deletions

File tree

source/create_grants.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ grant execute on &&ut3_owner..ut_tfs_junit_reporter to &ut3_user;
104104
grant execute on &&ut3_owner..ut_documentation_reporter to &ut3_user;
105105
grant execute on &&ut3_owner..ut_sonar_test_reporter to &ut3_user;
106106
grant execute on &&ut3_owner..ut_realtime_reporter to &ut3_user;
107+
grant execute on &&ut3_owner..ut_tap_reporter to &ut3_user;
107108
--reporters - coverage
108109
grant execute on &&ut3_owner..ut_coverage_html_reporter to &ut3_user;
109110
grant execute on &&ut3_owner..ut_coverage_sonar_reporter to &ut3_user;

source/create_synonyms.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ create &action_type. synonym &ut3_user.ut_tfs_junit_reporter for &&ut3_owner..ut
119119
create &action_type. synonym &ut3_user.ut_documentation_reporter for &&ut3_owner..ut_documentation_reporter;
120120
create &action_type. synonym &ut3_user.ut_sonar_test_reporter for &&ut3_owner..ut_sonar_test_reporter;
121121
create &action_type. synonym &ut3_user.ut_realtime_reporter for &&ut3_owner..ut_realtime_reporter;
122+
create &action_type. synonym &ut3_user.ut_tap_reporter for &&ut3_owner..ut_tap_reporter;
122123
--reporters - coverage
123124
create &action_type. synonym &ut3_user.ut_coverage_html_reporter for &&ut3_owner..ut_coverage_html_reporter;
124125
create &action_type. synonym &ut3_user.ut_coverage_sonar_reporter for &&ut3_owner..ut_coverage_sonar_reporter;
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
create or replace type body ut_tap_reporter is
2+
3+
4+
constructor function ut_tap_reporter(self in out nocopy ut_tap_reporter) return self as result is
5+
begin
6+
self.init($$plsql_unit);
7+
self.lvl := 0;
8+
return;
9+
end ut_tap_reporter;
10+
11+
overriding member procedure before_calling_suite(self in out nocopy ut_tap_reporter, a_suite ut_logical_suite) as
12+
begin
13+
self.print_text('# Subtest: ' || coalesce(a_suite.description, a_suite.name));
14+
lvl := lvl + 2;
15+
self.print_text('1..' || a_suite.items.count);
16+
end before_calling_suite;
17+
18+
overriding member procedure after_calling_test(self in out nocopy ut_tap_reporter, a_test ut_test) as
19+
l_message varchar2(4000);
20+
l_test_name varchar2(300) := coalesce(a_test.description, a_test.name);
21+
22+
procedure print_failed_expectation(a_test ut_test) is
23+
l_lines ut_varchar2_list;
24+
l_failed boolean;
25+
begin
26+
if a_test.get_error_stack_traces().count = 0 then
27+
-- If no error occurred, print failed expectation
28+
l_lines := a_test.all_expectations(a_test.all_expectations.last).get_result_lines();
29+
l_failed := a_test.all_expectations(a_test.all_expectations.last).status >= ut_utils.gc_success;
30+
if l_failed then
31+
self.print_text('message: ''' || l_lines(1) || '''');
32+
self.print_text('severity: fail');
33+
end if;
34+
else
35+
-- Print multi-line YAML-String with implicit newline characters
36+
self.print_text('message: |');
37+
self.lvl := self.lvl + 1;
38+
self.print_text(ut_utils.table_to_clob(a_test.get_error_stack_traces()));
39+
self.lvl := self.lvl - 1;
40+
self.print_text('severity: error');
41+
end if;
42+
end print_failed_expectation;
43+
44+
begin
45+
46+
if a_test.result = ut_utils.gc_disabled then
47+
self.print_text('ok - ' || l_test_name || ' # SKIP'||
48+
case when a_test.disabled_reason is not null
49+
then ': '||a_test.disabled_reason
50+
else null
51+
end );
52+
elsif a_test.result = ut_utils.gc_success then
53+
self.print_text('ok - ' || l_test_name);
54+
elsif a_test.result > ut_utils.gc_success then
55+
if self.lvl = 0 then
56+
self.print_text(ut_ansiconsole_helper.red('not ok') || ' - ' || l_test_name);
57+
else
58+
self.print_text('not ok - ' || l_test_name);
59+
end if;
60+
self.lvl := self.lvl + 1;
61+
self.print_text('---');
62+
print_failed_expectation(a_test);
63+
self.print_text('...');
64+
self.lvl := self.lvl - 1;
65+
end if;
66+
67+
end after_calling_test;
68+
69+
overriding member procedure after_calling_before_all(self in out nocopy ut_tap_reporter, a_executable in ut_executable) is
70+
begin
71+
if a_executable.serveroutput is not null and a_executable.serveroutput != empty_clob() then
72+
self.print_clob(a_executable.serveroutput);
73+
end if;
74+
end after_calling_before_all;
75+
76+
overriding member procedure after_calling_suite(self in out nocopy ut_tap_reporter, a_suite ut_logical_suite) as
77+
l_suite_name varchar2(300) := coalesce(a_suite.description, a_suite.name);
78+
begin
79+
lvl := lvl - 2;
80+
if lvl = 0 then
81+
if a_suite.result = ut_utils.gc_success then
82+
self.print_text('ok - ' || l_suite_name);
83+
elsif a_suite.result > ut_utils.gc_success then
84+
self.print_text(ut_ansiconsole_helper.red('not ok') || ' - ' || l_suite_name);
85+
end if;
86+
87+
self.print_text(' ');
88+
end if;
89+
90+
end after_calling_suite;
91+
92+
overriding member procedure before_calling_run(self in out nocopy ut_tap_reporter, a_run in ut_run) as
93+
begin
94+
self.print_text('TAP version 14');
95+
self.print_text('1..' || a_run.items.count);
96+
self.print_text(' ');
97+
end before_calling_run;
98+
99+
overriding member procedure after_calling_run(self in out nocopy ut_tap_reporter, a_run in ut_run) as
100+
begin
101+
self.lvl := 0;
102+
end;
103+
end;
104+
/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
create or replace type ut_tap_reporter under ut_documentation_reporter(
2+
3+
constructor function ut_tap_reporter(self in out nocopy ut_tap_reporter) return self as result,
4+
overriding member procedure before_calling_suite(self in out nocopy ut_tap_reporter, a_suite ut_logical_suite),
5+
overriding member procedure after_calling_test(self in out nocopy ut_tap_reporter, a_test ut_test),
6+
overriding member procedure after_calling_before_all (self in out nocopy ut_tap_reporter, a_executable in ut_executable),
7+
overriding member procedure before_calling_run(self in out nocopy ut_tap_reporter, a_run in ut_run),
8+
overriding member procedure after_calling_suite(self in out nocopy ut_tap_reporter, a_suite ut_logical_suite),
9+
overriding member procedure after_calling_run(self in out nocopy ut_tap_reporter, a_run in ut_run)
10+
11+
)
12+
not final
13+
/

0 commit comments

Comments
 (0)