diff --git a/source/core/ut_suite_builder.pkb b/source/core/ut_suite_builder.pkb
index b3c6f81dd..c7e968467 100644
--- a/source/core/ut_suite_builder.pkb
+++ b/source/core/ut_suite_builder.pkb
@@ -800,6 +800,7 @@ create or replace package body ut_suite_builder is
while l_context_pos is not null loop
l_default_context_name := 'nested_context_#'||l_context_no;
+ l_context_name := null;
l_end_context_pos := get_endcontext_position(l_context_pos, a_annotations.by_name );
l_next_context_pos := a_annotations.by_name(gc_context).next(l_context_pos);
diff --git a/test/ut3_tester/core/test_suite_builder.pkb b/test/ut3_tester/core/test_suite_builder.pkb
index 9b2c26567..a204a04e6 100644
--- a/test/ut3_tester/core/test_suite_builder.pkb
+++ b/test/ut3_tester/core/test_suite_builder.pkb
@@ -1225,23 +1225,76 @@ create or replace package body test_suite_builder is
ut.expect(l_actual).to_be_like(
''||
'' ||
- '%' ||
- '' ||
- '%nested_context_#1A contextsome_package.nested_context_#1' ||
- '%' ||
- '' ||
- '%test_in_a_contextIn contextsome_package.nested_context_#1.test_in_a_context' ||
- '%' ||
- '' ||
- '' ||
- '' ||
- '' ||
- '' ||
- '%suite_level_testIn suitesome_package.suite_level_test' ||
- '%' ||
- '' ||
- '' ||
- '' ||
+ '%' ||
+ '' ||
+ '%nested_context_#1A contextsome_package.nested_context_#1' ||
+ '%' ||
+ '' ||
+ '%test_in_a_contextIn contextsome_package.nested_context_#1.test_in_a_context' ||
+ '%' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '%suite_level_testIn suitesome_package.suite_level_test' ||
+ '%' ||
+ '' ||
+ '' ||
+ '' ||
+ ''||
+ '
'
+ );
+ end;
+
+ procedure multiple_contexts is
+ l_actual clob;
+ l_annotations ut3.ut_annotations;
+ begin
+ --Arrange
+ l_annotations := ut3.ut_annotations(
+ ut3.ut_annotation(1, 'suite','Cool', null),
+ ut3.ut_annotation(4, 'context','A context', null),
+ ut3.ut_annotation(6, 'test', 'In context1', 'test_in_a_context1'),
+ ut3.ut_annotation(7, 'endcontext',null, null),
+ ut3.ut_annotation(8, 'context','A context', null),
+ ut3.ut_annotation(10, 'test', 'In context2', 'test_in_a_context2'),
+ ut3.ut_annotation(11, 'endcontext',null, null)
+ );
+ --Act
+ l_actual := invoke_builder_for_annotations(l_annotations, 'SOME_PACKAGE');
+ --Assert
+ ut.expect(l_actual).to_be_like(
+ '%%'
+ ,'\'
+ );
+ ut.expect(l_actual).to_be_like(
+ ''||
+ '' ||
+ '%' ||
+ '' ||
+ '%nested_context_#2A contextsome_package.nested_context_#2' ||
+ '%' ||
+ '' ||
+ '%test_in_a_context2In context2some_package.nested_context_#2.test_in_a_context2' ||
+ '%' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '%nested_context_#1A contextsome_package.nested_context_#1' ||
+ '%' ||
+ '' ||
+ '%test_in_a_context1In context1some_package.nested_context_#1.test_in_a_context1' ||
+ '%' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
+ '' ||
''||
'
'
);
diff --git a/test/ut3_tester/core/test_suite_builder.pks b/test/ut3_tester/core/test_suite_builder.pks
index f1fa7f157..7a85cb946 100644
--- a/test/ut3_tester/core/test_suite_builder.pks
+++ b/test/ut3_tester/core/test_suite_builder.pks
@@ -146,6 +146,9 @@ create or replace package test_suite_builder is
--%test(Is ignored when name value is empty)
procedure name_empty_value;
+ --%test(Is ignored when name value is empty)
+ procedure multiple_contexts;
+
--%endcontext
--%context(--%throws annotation)