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

Skip to content

Commit d9077a1

Browse files
authored
Merge pull request #1037 from utPLSQL/feature/test_ordering
Changed ordering of tests for suites with context
2 parents 8f38487 + 326e055 commit d9077a1

3 files changed

Lines changed: 78 additions & 66 deletions

File tree

source/core/ut_suite_cache_manager.pkb

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,24 @@ create or replace package body ut_suite_cache_manager is
162162
return case
163163
when a_random_seed is null then q'[
164164
replace(
165-
case
166-
when c.obj.self_type in ( 'UT_TEST' )
167-
then substr(c.obj.path, 1, instr(c.obj.path, '.', -1) )
168-
else c.obj.path
169-
end, '.', chr(0)
165+
--suite path until objects name (excluding contexts and test path) with trailing dot (full stop)
166+
substr( c.obj.path, 1, instr( c.obj.path, lower(c.obj.object_name), -1 ) + length(c.obj.object_name) ),
167+
'.',
168+
--'.' replaced with chr(0) to assure that child elements come before parent when sorting in descending oder
169+
chr(0)
170170
) desc nulls last,
171-
c.obj.object_name desc,
172-
c.obj.line_no,
171+
case when c.obj.self_type = 'UT_SUITE_CONTEXT' then
172+
( select max( x.line_no ) + 1
173+
from ut_suite_cache x
174+
where c.obj.object_owner = x.object_owner
175+
and c.obj.object_name = x.object_name
176+
and x.path like c.obj.path || '.%'
177+
)
178+
else
179+
c.obj.line_no
180+
end,
181+
--assures that child contexts come before parent contexts
182+
regexp_count(c.obj.path,'\.') desc,
173183
:a_random_seed]'
174184
else
175185
' ut_runner.hash_suite_path(

test/ut3_tester/core/test_suite_builder.pkb

Lines changed: 60 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,9 @@ create or replace package body test_suite_builder is
649649
'<UT_LOGICAL_SUITE>' ||
650650
'%<WARNINGS/>' ||
651651
'%<ITEMS>' ||
652+
'<UT_SUITE_ITEM>' ||
653+
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
654+
'%</UT_SUITE_ITEM>' ||
652655
'<UT_SUITE_ITEM>' ||
653656
'%<NAME>a_context</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
654657
'%<ITEMS>' ||
@@ -661,9 +664,6 @@ create or replace package body test_suite_builder is
661664
'%</BEFORE_ALL_LIST>' ||
662665
'<AFTER_ALL_LIST/>' ||
663666
'</UT_SUITE_ITEM>' ||
664-
'<UT_SUITE_ITEM>' ||
665-
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
666-
'%</UT_SUITE_ITEM>' ||
667667
'</ITEMS>' ||
668668
'<BEFORE_ALL_LIST>' ||
669669
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>' ||
@@ -710,26 +710,14 @@ create or replace package body test_suite_builder is
710710
'<UT_LOGICAL_SUITE>' ||
711711
'%<WARNINGS/>' ||
712712
'%<ITEMS>' ||
713+
'<UT_SUITE_ITEM>' ||
714+
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
715+
'%</UT_SUITE_ITEM>' ||
713716
'<UT_SUITE_ITEM>' ||
714717
'%<NAME>a_context</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
715718
'%<ITEMS>' ||
716719
'<UT_SUITE_ITEM>' ||
717-
'%<NAME>nested_context_2</NAME><DESCRIPTION>nested_context_2</DESCRIPTION><PATH>some_package.a_context.nested_context_2</PATH>' ||
718-
'%<ITEMS>' ||
719-
'<UT_SUITE_ITEM>' ||
720-
'%<NAME>nested_context_#1</NAME><DESCRIPTION>a_nested_context_3</DESCRIPTION><PATH>some_package.a_context.nested_context_2.nested_context_#1</PATH>' ||
721-
'%<ITEMS>' ||
722-
'<UT_SUITE_ITEM>' ||
723-
'%<NAME>test_in_nested_context_3</NAME><DESCRIPTION>Test in nested context</DESCRIPTION><PATH>some_package.a_context.nested_context_2.nested_context_#1.test_in_nested_context_3</PATH>' ||
724-
'%</UT_SUITE_ITEM>' ||
725-
'</ITEMS>' ||
726-
'<BEFORE_ALL_LIST/>' ||
727-
'%</UT_SUITE_ITEM>' ||
728-
'<UT_SUITE_ITEM>' ||
729-
'%<NAME>test_in_nested_context_2</NAME><DESCRIPTION>Test in nested context</DESCRIPTION><PATH>some_package.a_context.nested_context_2.test_in_nested_context_2</PATH>' ||
730-
'%</UT_SUITE_ITEM>' ||
731-
'</ITEMS>' ||
732-
'<BEFORE_ALL_LIST/>' ||
720+
'%<NAME>first_test_in_a_context</NAME><DESCRIPTION>First test in context</DESCRIPTION><PATH>some_package.a_context.first_test_in_a_context</PATH>' ||
733721
'%</UT_SUITE_ITEM>' ||
734722
'<UT_SUITE_ITEM>' ||
735723
'%<NAME>a_nested_context</NAME><DESCRIPTION>A nested context</DESCRIPTION><PATH>some_package.a_context.a_nested_context</PATH>' ||
@@ -743,7 +731,22 @@ create or replace package body test_suite_builder is
743731
'%</BEFORE_ALL_LIST>' ||
744732
'%</UT_SUITE_ITEM>' ||
745733
'<UT_SUITE_ITEM>' ||
746-
'%<NAME>first_test_in_a_context</NAME><DESCRIPTION>First test in context</DESCRIPTION><PATH>some_package.a_context.first_test_in_a_context</PATH>' ||
734+
'%<NAME>nested_context_2</NAME><DESCRIPTION>nested_context_2</DESCRIPTION><PATH>some_package.a_context.nested_context_2</PATH>' ||
735+
'%<ITEMS>' ||
736+
'<UT_SUITE_ITEM>' ||
737+
'%<NAME>test_in_nested_context_2</NAME><DESCRIPTION>Test in nested context</DESCRIPTION><PATH>some_package.a_context.nested_context_2.test_in_nested_context_2</PATH>' ||
738+
'%</UT_SUITE_ITEM>' ||
739+
'<UT_SUITE_ITEM>' ||
740+
'%<NAME>nested_context_#1</NAME><DESCRIPTION>a_nested_context_3</DESCRIPTION><PATH>some_package.a_context.nested_context_2.nested_context_#1</PATH>' ||
741+
'%<ITEMS>' ||
742+
'<UT_SUITE_ITEM>' ||
743+
'%<NAME>test_in_nested_context_3</NAME><DESCRIPTION>Test in nested context</DESCRIPTION><PATH>some_package.a_context.nested_context_2.nested_context_#1.test_in_nested_context_3</PATH>' ||
744+
'%</UT_SUITE_ITEM>' ||
745+
'</ITEMS>' ||
746+
'<BEFORE_ALL_LIST/>' ||
747+
'%</UT_SUITE_ITEM>' ||
748+
'</ITEMS>' ||
749+
'<BEFORE_ALL_LIST/>' ||
747750
'%</UT_SUITE_ITEM>' ||
748751
'<UT_SUITE_ITEM>' ||
749752
'%<NAME>second_test_in_a_context</NAME><DESCRIPTION>Second test in context</DESCRIPTION><PATH>some_package.a_context.second_test_in_a_context</PATH>' ||
@@ -754,9 +757,6 @@ create or replace package body test_suite_builder is
754757
'%</BEFORE_ALL_LIST>' ||
755758
'<AFTER_ALL_LIST/>' ||
756759
'</UT_SUITE_ITEM>' ||
757-
'<UT_SUITE_ITEM>' ||
758-
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
759-
'%</UT_SUITE_ITEM>' ||
760760
'</ITEMS>' ||
761761
'<BEFORE_ALL_LIST>' ||
762762
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>' ||
@@ -859,6 +859,10 @@ create or replace package body test_suite_builder is
859859
'<ROWSET><ROW>'||
860860
'<UT_LOGICAL_SUITE>' ||
861861
'%<ITEMS>' ||
862+
'%<UT_SUITE_ITEM>' ||
863+
'%<NAME>suite_level_test</NAME>' ||
864+
'%<ITEM>%<PROCEDURE_NAME>suite_level_test</PROCEDURE_NAME>%</ITEM>' ||
865+
'%</UT_SUITE_ITEM>' ||
862866
'%<UT_SUITE_ITEM>' ||
863867
'%<NAME>nested_context_#1</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#1</PATH>' ||
864868
'%<ITEMS>' ||
@@ -872,10 +876,6 @@ create or replace package body test_suite_builder is
872876
'%<BEFORE_ALL_LIST>%<PROCEDURE_NAME>context_beforeall</PROCEDURE_NAME>%</BEFORE_ALL_LIST>' ||
873877
'%<AFTER_ALL_LIST>%<PROCEDURE_NAME>context_afterall</PROCEDURE_NAME>%</AFTER_ALL_LIST>' ||
874878
'%</UT_SUITE_ITEM>' ||
875-
'%<UT_SUITE_ITEM>' ||
876-
'%<NAME>suite_level_test</NAME>' ||
877-
'%<ITEM>%<PROCEDURE_NAME>suite_level_test</PROCEDURE_NAME>%</ITEM>' ||
878-
'%</UT_SUITE_ITEM>' ||
879879
'%</ITEMS>' ||
880880
'%</UT_LOGICAL_SUITE>'||
881881
'</ROW></ROWSET>'
@@ -909,6 +909,12 @@ create or replace package body test_suite_builder is
909909
'<ROWSET><ROW>'||
910910
'<UT_LOGICAL_SUITE>' ||
911911
'%<ITEMS>' ||
912+
'%<UT_SUITE_ITEM>' ||
913+
'%<NAME>suite_level_test</NAME>' ||
914+
'%<BEFORE_EACH_LIST>%<PROCEDURE_NAME>suite_level_beforeeach</PROCEDURE_NAME>%</BEFORE_EACH_LIST>' ||
915+
'%<ITEM>%<PROCEDURE_NAME>suite_level_test</PROCEDURE_NAME>%</ITEM>' ||
916+
'%<AFTER_EACH_LIST>%<PROCEDURE_NAME>suite_level_aftereach</PROCEDURE_NAME>%</AFTER_EACH_LIST>' ||
917+
'%</UT_SUITE_ITEM>' ||
912918
'%<UT_SUITE_ITEM>' ||
913919
'%<NAME>nested_context_#1</NAME><DESCRIPTION>nested_context_#1</DESCRIPTION><PATH>some_package.nested_context_#1</PATH>' ||
914920
'%<ITEMS>' ||
@@ -920,12 +926,6 @@ create or replace package body test_suite_builder is
920926
'%</UT_SUITE_ITEM>' ||
921927
'%</ITEMS>' ||
922928
'%</UT_SUITE_ITEM>' ||
923-
'%<UT_SUITE_ITEM>' ||
924-
'%<NAME>suite_level_test</NAME>' ||
925-
'%<BEFORE_EACH_LIST>%<PROCEDURE_NAME>suite_level_beforeeach</PROCEDURE_NAME>%</BEFORE_EACH_LIST>' ||
926-
'%<ITEM>%<PROCEDURE_NAME>suite_level_test</PROCEDURE_NAME>%</ITEM>' ||
927-
'%<AFTER_EACH_LIST>%<PROCEDURE_NAME>suite_level_aftereach</PROCEDURE_NAME>%</AFTER_EACH_LIST>' ||
928-
'%</UT_SUITE_ITEM>' ||
929929
'%</ITEMS>' ||
930930
'%<BEFORE_ALL_LIST>%<PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>%</BEFORE_ALL_LIST>' ||
931931
'%<AFTER_ALL_LIST>%<PROCEDURE_NAME>suite_level_afterall</PROCEDURE_NAME>%</AFTER_ALL_LIST>' ||
@@ -961,18 +961,20 @@ create or replace package body test_suite_builder is
961961
'<ROWSET><ROW>'||
962962
'<UT_LOGICAL_SUITE>' ||
963963
'%<ITEMS>' ||
964-
'%<NAME>a_context</NAME><DESCRIPTION>Some context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
965-
'%<ITEMS>' ||
966-
'<UT_SUITE_ITEM>' ||
967-
'%<NAME>test_in_a_context</NAME><DESCRIPTION>In context</DESCRIPTION><PATH>some_package.a_context.test_in_a_context</PATH>' ||
968-
'%</UT_SUITE_ITEM>' ||
969-
'</ITEMS>' ||
970-
'<BEFORE_ALL_LIST>' ||
971-
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>context_setup</PROCEDURE_NAME>' ||
972-
'%</BEFORE_ALL_LIST>' ||
973964
'%<UT_SUITE_ITEM>' ||
974965
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
975966
'%</UT_SUITE_ITEM>' ||
967+
'%<UT_SUITE_ITEM>' ||
968+
'%<NAME>a_context</NAME><DESCRIPTION>Some context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
969+
'%<ITEMS>' ||
970+
'<UT_SUITE_ITEM>' ||
971+
'%<NAME>test_in_a_context</NAME><DESCRIPTION>In context</DESCRIPTION><PATH>some_package.a_context.test_in_a_context</PATH>' ||
972+
'%</UT_SUITE_ITEM>' ||
973+
'</ITEMS>' ||
974+
'<BEFORE_ALL_LIST>' ||
975+
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>context_setup</PROCEDURE_NAME>' ||
976+
'%</BEFORE_ALL_LIST>' ||
977+
'%</UT_SUITE_ITEM>' ||
976978
'</ITEMS>' ||
977979
'<BEFORE_ALL_LIST>' ||
978980
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>' ||
@@ -1010,6 +1012,9 @@ create or replace package body test_suite_builder is
10101012
'<ROWSET><ROW>'||
10111013
'<UT_LOGICAL_SUITE>' ||
10121014
'%<ITEMS>' ||
1015+
'<UT_SUITE_ITEM>' ||
1016+
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
1017+
'%</UT_SUITE_ITEM>' ||
10131018
'<UT_SUITE_ITEM>' ||
10141019
'%<NAME>a_context</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
10151020
'%<ITEMS>' ||
@@ -1022,9 +1027,6 @@ create or replace package body test_suite_builder is
10221027
'%</BEFORE_ALL_LIST>' ||
10231028
'<AFTER_ALL_LIST/>' ||
10241029
'</UT_SUITE_ITEM>' ||
1025-
'<UT_SUITE_ITEM>' ||
1026-
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
1027-
'%</UT_SUITE_ITEM>' ||
10281030
'</ITEMS>' ||
10291031
'<BEFORE_ALL_LIST>' ||
10301032
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>' ||
@@ -1067,32 +1069,32 @@ create or replace package body test_suite_builder is
10671069
'<UT_LOGICAL_SUITE>' ||
10681070
'%<ITEMS>' ||
10691071
'<UT_SUITE_ITEM>' ||
1070-
'%<NAME>nested_context_#2</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#2</PATH>' ||
1072+
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
1073+
'%</UT_SUITE_ITEM>' ||
1074+
'<UT_SUITE_ITEM>' ||
1075+
'%<NAME>a_context</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
10711076
'%<ITEMS>' ||
10721077
'<UT_SUITE_ITEM>' ||
1073-
'%<NAME>test_in_duplicated_context</NAME><DESCRIPTION>In duplicated context</DESCRIPTION><PATH>some_package.nested_context_#2.test_in_duplicated_context</PATH>' ||
1078+
'%<NAME>test_in_a_context</NAME><DESCRIPTION>In context</DESCRIPTION><PATH>some_package.a_context.test_in_a_context</PATH>' ||
10741079
'%</UT_SUITE_ITEM>' ||
10751080
'</ITEMS>' ||
10761081
'<BEFORE_ALL_LIST>' ||
1077-
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>setup_in_duplicated_context</PROCEDURE_NAME>' ||
1082+
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>context_setup</PROCEDURE_NAME>' ||
10781083
'%</BEFORE_ALL_LIST>' ||
10791084
'<AFTER_ALL_LIST/>' ||
10801085
'</UT_SUITE_ITEM>' ||
10811086
'<UT_SUITE_ITEM>' ||
1082-
'%<NAME>a_context</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.a_context</PATH>' ||
1087+
'%<NAME>nested_context_#2</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#2</PATH>' ||
10831088
'%<ITEMS>' ||
10841089
'<UT_SUITE_ITEM>' ||
1085-
'%<NAME>test_in_a_context</NAME><DESCRIPTION>In context</DESCRIPTION><PATH>some_package.a_context.test_in_a_context</PATH>' ||
1090+
'%<NAME>test_in_duplicated_context</NAME><DESCRIPTION>In duplicated context</DESCRIPTION><PATH>some_package.nested_context_#2.test_in_duplicated_context</PATH>' ||
10861091
'%</UT_SUITE_ITEM>' ||
10871092
'</ITEMS>' ||
10881093
'<BEFORE_ALL_LIST>' ||
1089-
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>context_setup</PROCEDURE_NAME>' ||
1094+
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>setup_in_duplicated_context</PROCEDURE_NAME>' ||
10901095
'%</BEFORE_ALL_LIST>' ||
10911096
'<AFTER_ALL_LIST/>' ||
10921097
'</UT_SUITE_ITEM>' ||
1093-
'<UT_SUITE_ITEM>' ||
1094-
'%<NAME>suite_level_test</NAME><DESCRIPTION>In suite</DESCRIPTION><PATH>some_package.suite_level_test</PATH>' ||
1095-
'%</UT_SUITE_ITEM>' ||
10961098
'</ITEMS>' ||
10971099
'<BEFORE_ALL_LIST>' ||
10981100
'%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>suite_level_beforeall</PROCEDURE_NAME>' ||
@@ -1341,20 +1343,20 @@ create or replace package body test_suite_builder is
13411343
'<UT_LOGICAL_SUITE>' ||
13421344
'%<ITEMS>' ||
13431345
'<UT_SUITE_ITEM>' ||
1344-
'%<NAME>nested_context_#2</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#2</PATH>' ||
1346+
'%<NAME>nested_context_#1</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#1</PATH>' ||
13451347
'%<ITEMS>' ||
13461348
'<UT_SUITE_ITEM>' ||
1347-
'%<NAME>test_in_a_context2</NAME><DESCRIPTION>In context2</DESCRIPTION><PATH>some_package.nested_context_#2.test_in_a_context2</PATH>' ||
1349+
'%<NAME>test_in_a_context1</NAME><DESCRIPTION>In context1</DESCRIPTION><PATH>some_package.nested_context_#1.test_in_a_context1</PATH>' ||
13481350
'%</UT_SUITE_ITEM>' ||
13491351
'</ITEMS>' ||
13501352
'<BEFORE_ALL_LIST/>' ||
13511353
'<AFTER_ALL_LIST/>' ||
13521354
'</UT_SUITE_ITEM>' ||
13531355
'<UT_SUITE_ITEM>' ||
1354-
'%<NAME>nested_context_#1</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#1</PATH>' ||
1356+
'%<NAME>nested_context_#2</NAME><DESCRIPTION>A context</DESCRIPTION><PATH>some_package.nested_context_#2</PATH>' ||
13551357
'%<ITEMS>' ||
13561358
'<UT_SUITE_ITEM>' ||
1357-
'%<NAME>test_in_a_context1</NAME><DESCRIPTION>In context1</DESCRIPTION><PATH>some_package.nested_context_#1.test_in_a_context1</PATH>' ||
1359+
'%<NAME>test_in_a_context2</NAME><DESCRIPTION>In context2</DESCRIPTION><PATH>some_package.nested_context_#2.test_in_a_context2</PATH>' ||
13581360
'%</UT_SUITE_ITEM>' ||
13591361
'</ITEMS>' ||
13601362
'<BEFORE_ALL_LIST/>' ||

test/ut3_tester/core/test_suite_builder.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ create or replace package test_suite_builder is
151151
--%test(Is ignored when name value is empty)
152152
procedure name_empty_value;
153153

154-
--%test(Is ignored when name value is empty)
154+
--%test(Is applied to corresponding context when multiple contexts used)
155155
procedure multiple_contexts;
156156

157157
--%endcontext

0 commit comments

Comments
 (0)