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

Skip to content

Commit cf8757a

Browse files
committed
Added tests for junit
1 parent 181c835 commit cf8757a

3 files changed

Lines changed: 198 additions & 0 deletions

File tree

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
create or replace package body test_junit_reporter as
2+
3+
procedure crate_a_test_package is
4+
pragma autonomous_transaction;
5+
begin
6+
execute immediate q'[create or replace package check_junit_reporting is
7+
--%suite(A suite with <tag>)
8+
9+
--%test(A test with <tag>)
10+
procedure test_do_stuff;
11+
12+
end;]';
13+
execute immediate q'[create or replace package body check_junit_reporting is
14+
procedure test_do_stuff is
15+
begin
16+
ut3.ut.expect(1).to_equal(1);
17+
ut3.ut.expect(1).to_equal(2);
18+
end;
19+
20+
end;]';
21+
22+
execute immediate q'[create or replace package check_junit_rep_suitepath is
23+
--%suitepath(core)
24+
--%suite(check_junit_rep_suitepath)
25+
--%displayname(Check JUNIT Get path for suitepath)
26+
27+
--%test(check_junit_rep_suitepath)
28+
--%displayname(Check JUNIT Get path for suitepath)
29+
procedure check_junit_rep_suitepath;
30+
end;]';
31+
execute immediate q'[create or replace package body check_junit_rep_suitepath is
32+
procedure check_junit_rep_suitepath is
33+
begin
34+
ut3.ut.expect(1).to_equal(1);
35+
end;
36+
end;]';
37+
end;
38+
39+
procedure escapes_special_chars is
40+
l_results ut3.ut_varchar2_list;
41+
l_actual clob;
42+
begin
43+
--Act
44+
select *
45+
bulk collect into l_results
46+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter()));
47+
l_actual := ut3.ut_utils.table_to_clob(l_results);
48+
--Assert
49+
ut.expect(l_actual).not_to_be_like('%<tag>%');
50+
ut.expect(l_actual).to_be_like('%&lt;tag&gt;%');
51+
end;
52+
53+
procedure reports_only_failed_or_errored is
54+
l_results ut3.ut_varchar2_list;
55+
l_actual clob;
56+
begin
57+
--Act
58+
select *
59+
bulk collect into l_results
60+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter()));
61+
l_actual := ut3.ut_utils.table_to_clob(l_results);
62+
--Assert
63+
ut.expect(l_actual).not_to_be_like('%Actual: 1 (number) was expected to equal: 1 (number)%');
64+
ut.expect(l_actual).to_be_like('%Actual: 1 (number) was expected to equal: 2 (number)%');
65+
end;
66+
67+
procedure reports_failed_line is
68+
l_results ut3.ut_varchar2_list;
69+
l_actual clob;
70+
begin
71+
--Act
72+
select *
73+
bulk collect into l_results
74+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter()));
75+
l_actual := ut3.ut_utils.table_to_clob(l_results);
76+
--Assert
77+
ut.expect(l_actual).to_be_like('%at "%.CHECK_JUNIT_REPORTING%", line %');
78+
end;
79+
80+
procedure check_classname_suite is
81+
l_results ut3.ut_varchar2_list;
82+
l_actual clob;
83+
begin
84+
--Act
85+
select *
86+
bulk collect into l_results
87+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter()));
88+
l_actual := ut3.ut_utils.table_to_clob(l_results);
89+
--Assert
90+
ut.expect(l_actual).to_be_like('%testcase classname="check_junit_reporting"%');
91+
end;
92+
93+
procedure check_reporter_version_four is
94+
l_results ut3.ut_varchar2_list;
95+
l_actual clob;
96+
begin
97+
--Act
98+
select *
99+
bulk collect into l_results
100+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter(a_version => 4)));
101+
l_actual := ut3.ut_utils.table_to_clob(l_results);
102+
--Assert
103+
ut.expect(l_actual).to_be_like('%<testsuites tests="%" skipped="%" error="%" failure="%" name="%" time="%" >%');
104+
end;
105+
106+
procedure check_reporter_version_one is
107+
l_results ut3.ut_varchar2_list;
108+
l_actual clob;
109+
begin
110+
--Act
111+
select *
112+
bulk collect into l_results
113+
from table(ut3.ut.run('check_junit_reporting',ut3.ut_junit_reporter(a_version => 1)));
114+
l_actual := ut3.ut_utils.table_to_clob(l_results);
115+
--Assert
116+
ut.expect(l_actual).to_be_like('%<testsuites>%');
117+
ut.expect(l_actual).to_be_like('%<testsuite tests="%" id="%" package="%" errors="%" failures="%" name="%" time="%" timestamp="%T%" hostname="%" >%');
118+
end;
119+
120+
procedure check_nls_number_formatting is
121+
l_results ut3.ut_varchar2_list;
122+
l_actual clob;
123+
l_nls_numeric_characters varchar2(30);
124+
begin
125+
--Arrange
126+
select nsp.value into l_nls_numeric_characters
127+
from nls_session_parameters nsp
128+
where parameter = 'NLS_NUMERIC_CHARACTERS';
129+
execute immediate q'[alter session set NLS_NUMERIC_CHARACTERS=', ']';
130+
--Act
131+
select *
132+
bulk collect into l_results
133+
from table(ut3.ut.run('check_junit_reporting', ut3.ut_junit_reporter()));
134+
l_actual := ut3.ut_utils.table_to_clob(l_results);
135+
--Assert
136+
ut.expect(l_actual).to_match('time="[0-9]*\.[0-9]{6}"');
137+
--Cleanup
138+
execute immediate 'alter session set NLS_NUMERIC_CHARACTERS='''||l_nls_numeric_characters||'''';
139+
end;
140+
141+
procedure check_classname_suitepath is
142+
l_results ut3.ut_varchar2_list;
143+
l_actual clob;
144+
begin
145+
--Act
146+
select *
147+
bulk collect into l_results
148+
from table(ut3.ut.run('check_junit_rep_suitepath',ut3.ut_junit_reporter()));
149+
l_actual := ut3.ut_utils.table_to_clob(l_results);
150+
--Assert
151+
ut.expect(l_actual).to_be_like('%testcase classname="core.check_junit_rep_suitepath"%');
152+
end;
153+
procedure remove_test_package is
154+
pragma autonomous_transaction;
155+
begin
156+
execute immediate 'drop package check_junit_reporting';
157+
execute immediate 'drop package check_junit_rep_suitepath';
158+
end;
159+
end;
160+
/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
create or replace package test_junit_reporter as
2+
3+
--%suite(ut_junit_reporter)
4+
--%suitepath(utplsql.core.reporters)
5+
6+
--%beforeall
7+
procedure crate_a_test_package;
8+
9+
--%test(Escapes special characters from test and suite description)
10+
procedure escapes_special_chars;
11+
12+
--%test(Reports only failed expectations and exceptions)
13+
procedure reports_only_failed_or_errored;
14+
15+
--%test(Reports failed line of test)
16+
procedure reports_failed_line;
17+
18+
--%test(Check that classname is returned correct suite)
19+
procedure check_classname_suite;
20+
21+
--%test(Check that explicit parameter display correct version 4)
22+
procedure check_reporter_version_four;
23+
24+
--%test(Check that explicit parameter display correct version 1)
25+
procedure check_reporter_version_one;
26+
27+
--%test(Check that classname is returned correct suitepath)
28+
procedure check_classname_suitepath;
29+
30+
--%test(Reports duration according to XML specification for numbers)
31+
procedure check_nls_number_formatting;
32+
33+
--%afterall
34+
procedure remove_test_package;
35+
end;
36+
/

test/install_tests.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ whenever oserror exit failure rollback
3030
@@core/reporters/test_coverage/test_coveralls_reporter.pks
3131
@@core/reporters/test_coverage/test_cov_cobertura_reporter.pks
3232
@@core/reporters/test_xunit_reporter.pks
33+
@@core/reporters/test_junit_reporter.pks
3334
@@core/expectations.pks
3435
@@core/expectations/scalar_data/binary/test_be_greater_or_equal.pks
3536
@@core/expectations/scalar_data/binary/test_be_greater_than.pks
@@ -62,6 +63,7 @@ whenever oserror exit failure rollback
6263
@@core/reporters/test_coverage/test_coveralls_reporter.pkb
6364
@@core/reporters/test_coverage/test_cov_cobertura_reporter.pkb
6465
@@core/reporters/test_xunit_reporter.pkb
66+
@@core/reporters/test_junit_reporter.pkb
6567
@@core/expectations.pkb
6668
@@core/expectations/scalar_data/binary/test_be_greater_or_equal.pkb
6769
@@core/expectations/scalar_data/binary/test_be_greater_than.pkb

0 commit comments

Comments
 (0)