diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php index a03fb4bc1..860c8d3bb 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php @@ -88,6 +88,7 @@ public function testGetTestObject() $testDataArrayBuilder->testName, [$expectedTestActionObject], [ + 'features' => ['NO MODULE DETECTED'], 'group' => ['test'] ], [ @@ -101,6 +102,15 @@ public function testGetTestObject() $this->assertEquals($expectedTestObject, $actualTestObject); } + /** + * Tests basic getting of a test that has a fileName + */ + public function testGetTestWithFileName() + { + $this->markTestIncomplete(); + //TODO + } + /** * Tests the function used to get a series of relevant tests by group. * @@ -131,6 +141,44 @@ public function testGetTestsByGroup() $this->assertArrayNotHasKey('excludeTest', $tests); } + /** + * Tests the function used to parse and determine a test's Module (used in allure Features annotation) + * + * @throws \Exception + */ + public function testGetTestWithModuleName() + { + // set up Test Data + $moduleExpected = "SomeTestModule"; + $filepath = DIRECTORY_SEPARATOR . + "user" . + "magento2ce" . DIRECTORY_SEPARATOR . + "dev" . DIRECTORY_SEPARATOR . + "tests" . DIRECTORY_SEPARATOR . + "acceptance" . DIRECTORY_SEPARATOR . + "tests" . DIRECTORY_SEPARATOR . + $moduleExpected . DIRECTORY_SEPARATOR . + "Tests" . DIRECTORY_SEPARATOR . + "text.xml"; + // set up mock data + $testDataArrayBuilder = new TestDataArrayBuilder(); + $mockData = $testDataArrayBuilder + ->withAnnotations() + ->withFailedHook() + ->withAfterHook() + ->withBeforeHook() + ->withTestActions() + ->withFileName($filepath) + ->build(); + $this->setMockParserOutput(['tests' => $mockData]); + // Execute Test Method + $toh = TestObjectHandler::getInstance(); + $actualTestObject = $toh->getObject($testDataArrayBuilder->testName); + $moduleName = $actualTestObject->getAnnotations()["features"][0]; + //performAsserts + $this->assertEquals($moduleExpected, $moduleName); + } + /** * Function used to set mock for parser return and force init method to run between tests. * diff --git a/dev/tests/unit/Util/TestDataArrayBuilder.php b/dev/tests/unit/Util/TestDataArrayBuilder.php index 2cbc5ccf4..2dc739b94 100644 --- a/dev/tests/unit/Util/TestDataArrayBuilder.php +++ b/dev/tests/unit/Util/TestDataArrayBuilder.php @@ -7,6 +7,7 @@ namespace tests\unit\Util; use Magento\FunctionalTestingFramework\Test\Util\ActionObjectExtractor; +use Magento\FunctionalTestingFramework\Test\Util\AnnotationExtractor; use Magento\FunctionalTestingFramework\Test\Util\TestObjectExtractor; class TestDataArrayBuilder @@ -18,6 +19,13 @@ class TestDataArrayBuilder */ public $testName = 'testTest'; + /** + * Mock file name + * + * @var string + */ + public $filename = null; + /** * Mock before action name * @@ -187,6 +195,23 @@ public function withTestActions($actions = null) return $this; } + /** + * Add file name passe in by arg (or default if no arg) + * @param string $filename + * @return $this + */ + public function withFileName($filename = null) + { + if ($filename == null) { + $this->filename = + "/magento2-functional-testing-framework/dev/tests/verification/TestModule/Test/BasicFunctionalTest.xml"; + } else { + $this->filename = $filename; + } + + return $this; + } + /** * Output the resulting test data array based on parameters set in the object * @@ -201,7 +226,8 @@ public function build() TestObjectExtractor::TEST_ANNOTATIONS => $this->annotations, TestObjectExtractor::TEST_BEFORE_HOOK => $this->beforeHook, TestObjectExtractor::TEST_AFTER_HOOK => $this->afterHook, - TestObjectExtractor::TEST_FAILED_HOOK => $this->failedHook + TestObjectExtractor::TEST_FAILED_HOOK => $this->failedHook, + "filename" => $this->filename ], $this->testActions )]; diff --git a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt index b978a3188..a36c37e7a 100644 --- a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class ActionGroupUsingNestedArgumentCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt index 0809289b3..0c4ff37af 100644 --- a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt +++ b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt @@ -61,7 +61,7 @@ class ActionGroupWithDataOverrideTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt index fe3cf57c1..5f7d75899 100644 --- a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt +++ b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt @@ -61,7 +61,7 @@ class ActionGroupWithDataTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt index 9c56afff4..421bb4af7 100644 --- a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt +++ b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt @@ -22,6 +22,7 @@ class ActionGroupWithDefaultArgumentAndStringSelectorParamCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt index aa213c80f..3f907b9ee 100644 --- a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt @@ -22,6 +22,7 @@ class ActionGroupWithMultipleParameterSelectorsFromDefaultArgumentCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt index 45807663a..b2fa98e5c 100644 --- a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt +++ b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt @@ -22,6 +22,7 @@ class ActionGroupWithNoArgumentsCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt index 5cc1d7f39..82fde4afd 100644 --- a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt +++ b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt @@ -61,7 +61,7 @@ class ActionGroupWithNoDefaultTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt index 043a71c94..c7c305cb8 100644 --- a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt +++ b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt @@ -22,6 +22,7 @@ class ActionGroupWithPassedArgumentAndStringSelectorParamCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt index 2707770d5..fcd4f74f9 100644 --- a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt +++ b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt @@ -61,7 +61,7 @@ class ActionGroupWithPersistedDataCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt index 3774e639d..f27695b2b 100644 --- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt @@ -22,6 +22,7 @@ class ActionGroupWithSimpleDataUsageFromDefaultArgumentCest { /** * @Severity(level = SeverityLevel::CRITICAL) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt index a1e5a316b..ac56ca3f3 100644 --- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt @@ -22,6 +22,7 @@ class ActionGroupWithSimpleDataUsageFromPassedArgumentCest { /** * @Severity(level = SeverityLevel::CRITICAL) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt index d04e2ba80..7b74e0c1d 100644 --- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt @@ -22,6 +22,7 @@ class ActionGroupWithSingleParameterSelectorFromDefaultArgumentCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt index fb10e7847..bd71ebdf7 100644 --- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt +++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt @@ -22,6 +22,7 @@ class ActionGroupWithSingleParameterSelectorFromPassedArgumentCest { /** * @Severity(level = SeverityLevel::BLOCKER) + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt index ac97746b8..7b1a4d30d 100644 --- a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt +++ b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class ActionGroupWithStepKeyReferencesCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt index 743864b79..6588d490b 100644 --- a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt +++ b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt @@ -61,7 +61,7 @@ class ActionGroupWithTopLevelPersistedDataCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt index bb59a6758..bc2890967 100644 --- a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt +++ b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt @@ -61,7 +61,7 @@ class ArgumentWithSameNameAsElementCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt index 60eed6a8d..111b236ed 100644 --- a/dev/tests/verification/Resources/AssertTest.txt +++ b/dev/tests/verification/Resources/AssertTest.txt @@ -37,6 +37,7 @@ class AssertTestCest } /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/BasicActionGroupTest.txt b/dev/tests/verification/Resources/BasicActionGroupTest.txt index 86835364e..45ccc72a6 100644 --- a/dev/tests/verification/Resources/BasicActionGroupTest.txt +++ b/dev/tests/verification/Resources/BasicActionGroupTest.txt @@ -42,7 +42,7 @@ class BasicActionGroupTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/BasicFunctionalTest.txt b/dev/tests/verification/Resources/BasicFunctionalTest.txt index 57bd9dd01..b826ecef8 100644 --- a/dev/tests/verification/Resources/BasicFunctionalTest.txt +++ b/dev/tests/verification/Resources/BasicFunctionalTest.txt @@ -50,7 +50,7 @@ class BasicFunctionalTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Basic Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-305"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/BasicMergeTest.txt b/dev/tests/verification/Resources/BasicMergeTest.txt index 2cecb803f..ae3a69096 100644 --- a/dev/tests/verification/Resources/BasicMergeTest.txt +++ b/dev/tests/verification/Resources/BasicMergeTest.txt @@ -52,7 +52,7 @@ class BasicMergeTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Merge Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/CharacterReplacementTest.txt b/dev/tests/verification/Resources/CharacterReplacementTest.txt index 4ae325fba..466997a6f 100644 --- a/dev/tests/verification/Resources/CharacterReplacementTest.txt +++ b/dev/tests/verification/Resources/CharacterReplacementTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class CharacterReplacementTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/DataReplacementTest.txt b/dev/tests/verification/Resources/DataReplacementTest.txt index d5121931c..07b733ff4 100644 --- a/dev/tests/verification/Resources/DataReplacementTest.txt +++ b/dev/tests/verification/Resources/DataReplacementTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class DataReplacementTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/HookActionsTest.txt b/dev/tests/verification/Resources/HookActionsTest.txt index 2e9eb609b..e15918c1c 100644 --- a/dev/tests/verification/Resources/HookActionsTest.txt +++ b/dev/tests/verification/Resources/HookActionsTest.txt @@ -76,6 +76,7 @@ class HookActionsTestCest } /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/LocatorFunctionTest.txt b/dev/tests/verification/Resources/LocatorFunctionTest.txt index 37e5ae9fb..62fd808c5 100644 --- a/dev/tests/verification/Resources/LocatorFunctionTest.txt +++ b/dev/tests/verification/Resources/LocatorFunctionTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class LocatorFunctionTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/MergedActionGroupTest.txt b/dev/tests/verification/Resources/MergedActionGroupTest.txt index ab9b46f8d..59f2b2643 100644 --- a/dev/tests/verification/Resources/MergedActionGroupTest.txt +++ b/dev/tests/verification/Resources/MergedActionGroupTest.txt @@ -61,7 +61,7 @@ class MergedActionGroupTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/MergedReferencesTest.txt b/dev/tests/verification/Resources/MergedReferencesTest.txt index 519db4314..530a23b2e 100644 --- a/dev/tests/verification/Resources/MergedReferencesTest.txt +++ b/dev/tests/verification/Resources/MergedReferencesTest.txt @@ -50,7 +50,7 @@ class MergedReferencesTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Merge Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt index d9b32bfce..8bb180f5d 100644 --- a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt +++ b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt @@ -61,7 +61,7 @@ class MultipleActionGroupsTestCest /** * @Severity(level = SeverityLevel::CRITICAL) - * @Features({"Action Group Functional Cest"}) + * @Features({"TestModule"}) * @Stories({"MQE-433"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I diff --git a/dev/tests/verification/Resources/PageReplacementTest.txt b/dev/tests/verification/Resources/PageReplacementTest.txt index 5621e5c7a..f9fda51b2 100644 --- a/dev/tests/verification/Resources/PageReplacementTest.txt +++ b/dev/tests/verification/Resources/PageReplacementTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class PageReplacementTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/ParameterArrayTest.txt b/dev/tests/verification/Resources/ParameterArrayTest.txt index f60478037..d56a13386 100644 --- a/dev/tests/verification/Resources/ParameterArrayTest.txt +++ b/dev/tests/verification/Resources/ParameterArrayTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class ParameterArrayTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt index 126e9fb0a..9f60794e2 100644 --- a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt +++ b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class PersistedAndXmlEntityArgumentsCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/PersistedReplacementTest.txt b/dev/tests/verification/Resources/PersistedReplacementTest.txt index 2c335c7f0..4e85b0085 100644 --- a/dev/tests/verification/Resources/PersistedReplacementTest.txt +++ b/dev/tests/verification/Resources/PersistedReplacementTest.txt @@ -37,6 +37,7 @@ class PersistedReplacementTestCest } /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt index 53db9bcf8..51da945b2 100644 --- a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt +++ b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt @@ -49,6 +49,7 @@ class PersistenceCustomFieldsTestCest } /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/dev/tests/verification/Resources/SectionReplacementTest.txt b/dev/tests/verification/Resources/SectionReplacementTest.txt index 07a8e7400..f0c71a7fa 100644 --- a/dev/tests/verification/Resources/SectionReplacementTest.txt +++ b/dev/tests/verification/Resources/SectionReplacementTest.txt @@ -20,6 +20,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId; class SectionReplacementTestCest { /** + * @Features({"TestModule"}) * @Parameter(name = "AcceptanceTester", value="$I") * @param AcceptanceTester $I * @return void diff --git a/src/Magento/FunctionalTestingFramework/Config/Dom.php b/src/Magento/FunctionalTestingFramework/Config/Dom.php index 4bdfda289..e46d24214 100644 --- a/src/Magento/FunctionalTestingFramework/Config/Dom.php +++ b/src/Magento/FunctionalTestingFramework/Config/Dom.php @@ -215,6 +215,14 @@ protected function isTextNode($node) protected function mergeAttributes($baseNode, $mergeNode) { foreach ($mergeNode->attributes as $attribute) { + // Do not overwrite filename of base node + if ($attribute->name === "filename") { + $baseNode->setAttribute( + $this->getAttributeName($attribute), + $baseNode->getAttribute("filename") . "," . $attribute->value + ); + continue; + } $baseNode->setAttribute($this->getAttributeName($attribute), $attribute->value); } } diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php index 649376558..9dc4b0652 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php +++ b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php @@ -69,6 +69,9 @@ public function extractTestData($testData) $testAnnotations = []; $testHooks = []; $filename = $testData['filename'] ?? null; + $fileNames = explode(",", $filename); + $baseFileName = $fileNames[0]; + $module = $this->extractModuleName($baseFileName); $testActions = $this->stripDescriptorTags( $testData, self::NODE_NAME, @@ -84,6 +87,9 @@ public function extractTestData($testData) $testAnnotations = $this->annotationExtractor->extractAnnotations($testData[self::TEST_ANNOTATIONS]); } + //Override features with module name if present, populates it otherwise + $testAnnotations["features"] = [$module]; + // extract before if (array_key_exists(self::TEST_BEFORE_HOOK, $testData)) { $testHooks[self::TEST_BEFORE_HOOK] = $this->testHookObjectExtractor->extractHook( @@ -120,4 +126,25 @@ public function extractTestData($testData) throw new XmlException($exception->getMessage() . ' in Test ' . $filename); } } + + /** + * Extracts module name from the path given + * @param string $path + * @return string + */ + private function extractModuleName($path) + { + if (empty($path)) { + return "NO MODULE DETECTED"; + } + $paths = explode(DIRECTORY_SEPARATOR, $path); + if (count($paths) < 3) { + return "NO MODULE DETECTED"; + } elseif ($paths[count($paths)-3] == "Mftf") { + // app/code/Magento/[Analytics]/Test/Mftf/Test/SomeText.xml + return $paths[count($paths)-5]; + } + // dev/tests/acceptance/tests/functional/Magento/FunctionalTest/[Analytics]/Test/SomeText.xml + return $paths[count($paths)-3]; + } }