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

Skip to content

Commit 9abbfb3

Browse files
committed
import of code from https://github.com/rlove/ut3
1 parent 63709da commit 9abbfb3

24 files changed

Lines changed: 813 additions & 0 deletions

build/ut_conditial_debug_setup.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--This is only typically needed by developers of utplsql
2+
--Running this script recompiles the packages with tracing turned on.
3+
4+
alter session set PLSQL_Warnings = 'enable:all';
5+
alter session set PLSQL_CCFlags = 'ut_trace:true';
6+
7+
alter package ut_types compile debug package;
8+
alter package ut_assert compile debug package;
9+
alter package ut_testexecute compile debug package;
10+
alter package ut_exampletest compile debug package;

examples/RunExampleTestSuite.sql

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
--Shows how to create a test suite in code and call the test runner.
2+
--No tables are used for this.
3+
--Suite Management packages are when developed will make this easier.
4+
DECLARE
5+
testtoexecute ut_types.singletest;
6+
Suite UT_TYPES.TestSuite;
7+
TestResults ut_types.TestSuiteResults;
8+
BEGIN
9+
Suite.SuiteName := 'Test Suite Name';
10+
Suite.Tests := ut_Types.TestList();
11+
12+
TestToExecute.TypeOfTest := ut_Types.TT_Package;
13+
TestToExecute.ObjectName := 'ut_exampletest';
14+
TestToExecute.SetupMethod := 'Setup';
15+
TestToExecute.TearDownMethod := 'TearDown';
16+
TestToExecute.TestMethod := 'ut_exampletest';
17+
18+
Suite.Tests.Extend;
19+
Suite.Tests(Suite.Tests.LAST) := TestToExecute;
20+
/
21+
TestToExecute.TypeOfTest := ut3Types.TT_Package;
22+
TestToExecute.ObjectName := 'ut_exampletest2';
23+
TestToExecute.SetupMethod := 'Setup';
24+
TestToExecute.TearDownMethod := 'TearDown';
25+
TestToExecute.TestMethod := 'ut_exampletest';
26+
27+
Suite.Tests.Extend;
28+
Suite.Tests(Suite.Tests.LAST) := TestToExecute;
29+
30+
ut3TestRunner.ExecuteTests(Suite,null,TestResults);
31+
32+
-- No reporter used in this example so outputing the results manually.
33+
FOR test_idx in TestResults.first .. TestResults.last
34+
LOOP
35+
dbms_output.put_line('---------------------------------------------------');
36+
dbms_output.put_line('Test:' || TestResults(test_idx).Test.ObjectName || '.' || TestResults(test_idx).Test.TestMethod );
37+
dbms_output.put_line('Result: ' || TestResults(test_idx).result);
38+
dbms_output.put_line('Assert Results:');
39+
FOR I in TestResults(test_idx).AssertResults.First .. TestResults(test_idx).AssertResults.Last
40+
LOOP
41+
dbms_output.put_line(I || ' - result: ' || TestResults(test_idx).AssertResults(I).AssertResult);
42+
dbms_output.put_line(I || ' - Message: ' || TestResults(test_idx).AssertResults(I).Message);
43+
END LOOP;
44+
END LOOP;
45+
dbms_output.put_line('---------------------------------------------------');
46+
END;
47+
48+
49+
50+
51+
52+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--Shows how to create a test suite with the default reporter which is dbms_output
2+
--No tables are used for this.
3+
--Suite Management packages are when developed will make this easier.
4+
DECLARE
5+
TestToExecute ut3Types.SingleTest;
6+
Suite UT3TYPES.TestSuite;
7+
TestResults ut3types.TestSuiteResults;
8+
BEGIN
9+
Suite.SuiteName := 'Test Suite Name';
10+
Suite.Tests := ut3Types.TestList();
11+
12+
TestToExecute.TypeOfTest := ut3Types.TT_Package;
13+
TestToExecute.ObjectName := 'ut_exampletest';
14+
TestToExecute.SetupMethod := 'Setup';
15+
TestToExecute.TearDownMethod := 'TearDown';
16+
TestToExecute.TestMethod := 'ut_exampletest';
17+
18+
Suite.Tests.Extend;
19+
Suite.Tests(Suite.Tests.LAST) := TestToExecute;
20+
21+
TestToExecute.TypeOfTest := ut3Types.TT_Package;
22+
TestToExecute.ObjectName := 'ut_exampletest2';
23+
TestToExecute.SetupMethod := 'Setup';
24+
TestToExecute.TearDownMethod := 'TearDown';
25+
TestToExecute.TestMethod := 'ut_exampletest';
26+
27+
Suite.Tests.Extend;
28+
Suite.Tests(Suite.Tests.LAST) := TestToExecute;
29+
30+
ut3TestRunner.ExecuteTests(Suite,TestResults);
31+
END;
32+
33+
34+
35+
36+
37+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--This shows how the interna test engine works to test a single package.
2+
--No tables are used for this and exceptions are handled better.
3+
DECLARE
4+
TestToExecute ut_Types.Single_Test;
5+
TestResults ut_Types.test_execution_result;
6+
BEGIN
7+
--TestToExecute.TypeOfTest := ut_Types.TT_Package;
8+
testtoexecute.owner_name := USER;
9+
testtoexecute.object_name := 'UT_EXAMPLETEST';
10+
testtoexecute.setup_procedure := 'SETUP';
11+
TestToExecute.TearDown_procedure := 'TEARDOWN';
12+
testtoexecute.test_procedure := 'UT_EXAMPLETEST';
13+
ut_Test_Execute.Execute_Test(TestToExecute,TestResults);
14+
--For now result is an integer but will need a look upto make pretty later.
15+
dbms_output.put_line('Result: ' || TestResults.result);
16+
dbms_output.put_line('Assert Results:');
17+
FOR I in TestResults.Assert_Results.First .. TestResults.Assert_Results.Last
18+
loop
19+
dbms_output.put_line(i || ' - result: ' || testresults.assert_results(i).result);
20+
dbms_output.put_line(I || ' - Message: ' || TestResults.Assert_Results(I).Message);
21+
END LOOP;
22+
END;
23+
24+
25+
26+
27+
28+

examples/ut_exampletest.pkb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
create or replace package body ut_exampletest
2+
AS
3+
4+
procedure Setup
5+
as
6+
begin
7+
null;
8+
end;
9+
10+
procedure TearDown
11+
as
12+
begin
13+
null;
14+
end;
15+
16+
procedure ut_exampletest
17+
as
18+
begin
19+
ut_assert.are_Equal('Test 1 Should Pass',1,1);
20+
ut_assert.are_Equal('Test 2 Should Fail',1,2);
21+
end;
22+
23+
END;

examples/ut_exampletest.pks

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
create or replace package ut_exampletest
2+
AS
3+
procedure Setup;
4+
procedure TearDown;
5+
procedure ut_exampletest;
6+
END;

examples/ut_exampletest2.pkb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
create or replace package body ut_exampletest2
2+
AS
3+
4+
procedure Setup
5+
as
6+
begin
7+
null;
8+
end;
9+
10+
procedure TearDown
11+
as
12+
begin
13+
null;
14+
end;
15+
16+
procedure ut_exampletest
17+
as
18+
begin
19+
ut3assert.areEqual('Test 1 Should Pass',1,1);
20+
ut3assert.areEqual('Test 2 Should Pass',2,2);
21+
end;
22+
23+
END;

examples/ut_exampletest2.pks

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
create or replace package ut_exampletest2
2+
AS
3+
procedure Setup;
4+
procedure TearDown;
5+
procedure ut_exampletest;
6+
END;

source/install.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@@ut_types.pks
2+
@@ut_metadata.pks
3+
@@ut_test_runner.pks
4+
@@ut_reporter_execution.pks
5+
@@ut_assert.pks
6+
@@ut_dbms_ouput_reporter.pks
7+
@@ut_test_execute.pks
8+
9+
@@ut_types.pkb
10+
@@ut_metadata.pkb
11+
@@ut_test_runner.pkb
12+
@@ut_reporter_execution.pkb
13+
@@ut_assert.pkb
14+
@@ut_dbms_ouput_reporter.pkb
15+
@@ut_test_execute.pkb
16+

source/uninstall.sql

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
drop package ut_test_runner;
2+
3+
drop package ut_test_execute;
4+
5+
drop package ut_assert;
6+
7+
drop package ut_reporter_execution;
8+
9+
drop package ut_metadata;
10+
11+
drop package ut_types;
12+
13+
14+
15+

0 commit comments

Comments
 (0)