Skip to content

Commit 9acb400

Browse files
authored
MQE-1236: Allure Does Not Show Results For Tests With Duplicate Title Annotation
- TestCaseID is now prepended to Title annotation (or NONE FOUND) - Unit/Verification test updates
1 parent 8c80ca8 commit 9acb400

30 files changed

+178
-32
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,19 @@ public function testGetSuiteObject()
4242

4343
$mockGroup1Test1 = $testDataArrayBuilder
4444
->withName('group1Test1')
45-
->withAnnotations(['group' => [['value' => 'group1']]])
45+
->withAnnotations(['group' => [['value' => 'group1']], 'title'=>[['value' => 'group1Test1']]])
4646
->withTestActions()
4747
->build();
4848

4949
$mockGroup1Test2 = $testDataArrayBuilder
5050
->withName('group1Test2')
51-
->withAnnotations(['group' => [['value' => 'group1']]])
51+
->withAnnotations(['group' => [['value' => 'group1']], 'title'=>[['value' => 'group1Test2']]])
5252
->withTestActions()
5353
->build();
5454

5555
$mockGroup2Test1 = $testDataArrayBuilder
5656
->withName('group2Test1')
57-
->withAnnotations(['group' => [['value' => 'group2']]])
57+
->withAnnotations(['group' => [['value' => 'group2']], 'title'=>[['value' => 'group2Test1']]])
5858
->withTestActions()
5959
->build();
6060

dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,12 @@ public function testGetTestsByGroup()
121121
// set up mock data with Exclude Test
122122
$includeTest = (new TestDataArrayBuilder())
123123
->withName('includeTest')
124-
->withAnnotations()
124+
->withAnnotations(['group' => [['value' => 'test']], 'title'=>[['value' => 'includeTest']]])
125125
->withTestActions()
126126
->build();
127127
$excludeTest = (new TestDataArrayBuilder())
128128
->withName('excludeTest')
129+
->withAnnotations(['title'=>[['value' => 'excludeTest']]])
129130
->withTestActions()
130131
->build();
131132

dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/AnnotationExtractorTest.php

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,89 @@ public function testMissingAnnotations()
122122
);
123123
}
124124

125+
public function testTestCaseIdUniqueness()
126+
{
127+
// Test Data
128+
$firstTestAnnotation = [
129+
"nodeName" => "annotations",
130+
"features" => [
131+
[
132+
"nodeName" => "features",
133+
"value" => "TestFeatures"
134+
]
135+
],
136+
"stories" => [
137+
[
138+
"nodeName" => "stories",
139+
"value" => "TestStories"
140+
]
141+
],
142+
"title" => [
143+
[
144+
"nodeName" => "title",
145+
"value" => "TEST TITLE"
146+
]
147+
],
148+
"severity" => [
149+
[
150+
"nodeName" => "severity",
151+
"value" => "CRITICAL"
152+
]
153+
],
154+
"testCaseId" => [
155+
[
156+
"nodeName" => "testCaseId",
157+
"value" => "MQE-0001"
158+
]
159+
],
160+
];
161+
$secondTestannotation = [
162+
"nodeName" => "annotations",
163+
"features" => [
164+
[
165+
"nodeName" => "features",
166+
"value" => "TestFeatures"
167+
]
168+
],
169+
"stories" => [
170+
[
171+
"nodeName" => "stories",
172+
"value" => "TestStories"
173+
]
174+
],
175+
"title" => [
176+
[
177+
"nodeName" => "title",
178+
"value" => "TEST TITLE"
179+
]
180+
],
181+
"severity" => [
182+
[
183+
"nodeName" => "severity",
184+
"value" => "CRITICAL"
185+
]
186+
],
187+
"testCaseId" => [
188+
[
189+
"nodeName" => "testCaseId",
190+
"value" => "MQE-0001"
191+
]
192+
],
193+
];
194+
// Perform Test
195+
$extractor = new AnnotationExtractor();
196+
$extractor->extractAnnotations($firstTestAnnotation, "firstTest");
197+
$extractor->extractAnnotations($secondTestannotation, "secondTest");
198+
199+
//Expect Exception
200+
$this->expectException(\Magento\FunctionalTestingFramework\Exceptions\XmlException::class);
201+
$this->expectExceptionMessage("TestCaseId and Title pairs must be unique:\n\n" .
202+
"TestCaseId: 'MQE-0001' Title: 'TEST TITLE' in Tests 'firstTest', 'secondTest'");
203+
204+
//Trigger Exception
205+
$extractor->validateTestCaseIdTitleUniqueness();
206+
}
207+
125208
/**
126209
* After class functionality
127210
* @return void

dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ObjectExtensionUtilTest.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ public function testGenerateExtendedTest()
4343

4444
$testDataArrayBuilder = new TestDataArrayBuilder();
4545
$mockSimpleTest = $testDataArrayBuilder
46-
->withName('simpleTest')
47-
->withTestActions($mockActions)
48-
->build();
46+
->withName('simpleTest')
47+
->withAnnotations(['title'=>[['value' => 'simpleTest']]])
48+
->withTestActions($mockActions)
49+
->build();
4950

5051
$mockExtendedTest = $testDataArrayBuilder
5152
->withName('extendedTest')
53+
->withAnnotations(['title'=>[['value' => 'extendedTest']]])
5254
->withTestReference("simpleTest")
5355
->build();
5456

@@ -86,12 +88,14 @@ public function testGenerateExtendedWithHooks()
8688
$testDataArrayBuilder = new TestDataArrayBuilder();
8789
$mockSimpleTest = $testDataArrayBuilder
8890
->withName('simpleTest')
91+
->withAnnotations(['title'=>[['value' => 'simpleTest']]])
8992
->withBeforeHook($mockBeforeHooks)
9093
->withAfterHook($mockAfterHooks)
9194
->build();
9295

9396
$mockExtendedTest = $testDataArrayBuilder
9497
->withName('extendedTest')
98+
->withAnnotations(['title'=>[['value' => 'extendedTest']]])
9599
->withTestReference("simpleTest")
96100
->build();
97101

@@ -154,12 +158,14 @@ public function testExtendingExtendedTest()
154158

155159
$mockSimpleTest = $testDataArrayBuilder
156160
->withName('simpleTest')
161+
->withAnnotations(['title'=>[['value' => 'simpleTest']]])
157162
->withTestActions()
158163
->withTestReference("anotherTest")
159164
->build();
160165

161166
$mockExtendedTest = $testDataArrayBuilder
162167
->withName('extendedTest')
168+
->withAnnotations(['title'=>[['value' => 'extendedTest']]])
163169
->withTestReference("simpleTest")
164170
->build();
165171

dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Default Argument Value and Hardcoded Value in Param")
18+
* @Title("[NO TESTCASEID]: Action Group With Default Argument Value and Hardcoded Value in Param")
1919
*/
2020
class ActionGroupWithDefaultArgumentAndStringSelectorParamCest
2121
{

dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Passed Argument Value and Multiple Argument Values in Param")
18+
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Multiple Argument Values in Param")
1919
*/
2020
class ActionGroupWithMultipleParameterSelectorsFromDefaultArgumentCest
2121
{

dev/tests/verification/Resources/ActionGroupWithNoArguments.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With No Argument")
18+
* @Title("[NO TESTCASEID]: Action Group With No Argument")
1919
*/
2020
class ActionGroupWithNoArgumentsCest
2121
{

dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Passed Argument Value and Hardcoded Value in Param")
18+
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Hardcoded Value in Param")
1919
*/
2020
class ActionGroupWithPassedArgumentAndStringSelectorParamCest
2121
{

dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Simple Data Usage From Default Argument")
18+
* @Title("[NO TESTCASEID]: Action Group With Simple Data Usage From Default Argument")
1919
*/
2020
class ActionGroupWithSimpleDataUsageFromDefaultArgumentCest
2121
{

dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Simple Data Usage From Passed Argument")
18+
* @Title("[NO TESTCASEID]: Action Group With Simple Data Usage From Passed Argument")
1919
*/
2020
class ActionGroupWithSimpleDataUsageFromPassedArgumentCest
2121
{

dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Default Argument Value and Argument Value in Param")
18+
* @Title("[NO TESTCASEID]: Action Group With Default Argument Value and Argument Value in Param")
1919
*/
2020
class ActionGroupWithSingleParameterSelectorFromDefaultArgumentCest
2121
{

dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("Action Group With Passed Argument Value and Argument Value in Param")
18+
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Argument Value in Param")
1919
*/
2020
class ActionGroupWithSingleParameterSelectorFromPassedArgumentCest
2121
{

dev/tests/verification/Resources/BasicFunctionalTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("A Functional Cest")
18+
* @Title("[NO TESTCASEID]: A Functional Cest")
1919
* @group functional
2020
*/
2121
class BasicFunctionalTestCest

dev/tests/verification/Resources/BasicMergeTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("BasicMergeTest")
18+
* @Title("[NO TESTCASEID]: BasicMergeTest")
1919
* @group functional
2020
* @group mergeTest
2121
*/

dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestAddHooks")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestAddHooks")
1919
* @group Parent
2020
*/
2121
class ChildExtendedTestAddHooksCest

dev/tests/verification/Resources/ChildExtendedTestMerging.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestMerging")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestMerging")
1919
* @group Child
2020
*/
2121
class ChildExtendedTestMergingCest

dev/tests/verification/Resources/ChildExtendedTestNoParent.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestNoParent")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestNoParent")
1919
* @group Child
2020
* @group skip
2121
*/

dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestRemoveAction")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestRemoveAction")
1919
* @group Child
2020
*/
2121
class ChildExtendedTestRemoveActionCest

dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestRemoveHookAction")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestRemoveHookAction")
1919
* @group Child
2020
*/
2121
class ChildExtendedTestRemoveHookActionCest

dev/tests/verification/Resources/ChildExtendedTestReplace.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestReplace")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestReplace")
1919
* @group Child
2020
*/
2121
class ChildExtendedTestReplaceCest

dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestReplaceHook")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestReplaceHook")
1919
* @group Child
2020
*/
2121
class ChildExtendedTestReplaceHookCest

dev/tests/verification/Resources/ExtendingSkippedTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ChildExtendedTestSkippedParent")
18+
* @Title("[NO TESTCASEID]: ChildExtendedTestSkippedParent")
1919
* @group Child
2020
*/
2121
class ExtendingSkippedTestCest

dev/tests/verification/Resources/MergedReferencesTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("MergedReferencesTest")
18+
* @Title("[NO TESTCASEID]: MergedReferencesTest")
1919
* @group functional
2020
*/
2121
class MergedReferencesTestCest

dev/tests/verification/Resources/ParentExtendedTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("ParentExtendedTest")
18+
* @Title("[NO TESTCASEID]: ParentExtendedTest")
1919
* @group Parent
2020
*/
2121
class ParentExtendedTestCest

dev/tests/verification/Resources/SkippedTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("skippedTest")
18+
* @Title("[NO TESTCASEID]: skippedTest")
1919
* @Description("")
2020
*/
2121
class SkippedTestCest

dev/tests/verification/Resources/SkippedTestNoIssues.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("skippedNoIssuesTest")
18+
* @Title("[NO TESTCASEID]: skippedNoIssuesTest")
1919
* @Description("")
2020
* @group skip
2121
*/

dev/tests/verification/Resources/SkippedTestTwoIssues.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("skippedMultipleIssuesTest")
18+
* @Title("[NO TESTCASEID]: skippedMultipleIssuesTest")
1919
* @Description("")
2020
*/
2121
class SkippedTestTwoIssuesCest

dev/tests/verification/Resources/SkippedTestWithHooks.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
1515
use Yandex\Allure\Adapter\Annotation\TestCaseId;
1616

1717
/**
18-
* @Title("skippedTestWithHooks")
18+
* @Title("[NO TESTCASEID]: skippedTestWithHooks")
1919
* @Description("")
2020
*/
2121
class SkippedTestWithHooksCest

src/Magento/FunctionalTestingFramework/Test/Handlers/TestObjectHandler.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ private function initTestData()
151151
$exceptionCollector->throwException();
152152

153153
$testObjectExtractor->getAnnotationExtractor()->validateStoryTitleUniqueness();
154+
$testObjectExtractor->getAnnotationExtractor()->validateTestCaseIdTitleUniqueness();
154155
}
155156

156157
/**

0 commit comments

Comments
 (0)