From 6a94c87537edd33547987d92292faab377f85494 Mon Sep 17 00:00:00 2001 From: KevinBKozan Date: Thu, 26 Apr 2018 13:30:44 -0500 Subject: [PATCH 1/5] MQE-980: [Annotations] tag defaults to module - Dom no longer overwrites filename, instead builds comma separated list to keep track of all test and merge paths - TestObjectExtractor not extracts module form base test path, and overwrites testAnnotations["features"] to only include the single module name. - Unit/Verification updates. --- .../Test/Handlers/TestObjectHandlerTest.php | 10 ++++++ dev/tests/unit/Util/TestDataArrayBuilder.php | 28 ++++++++++++++- .../ActionGroupUsingNestedArgument.txt | 1 + .../ActionGroupWithDataOverrideTest.txt | 2 +- .../Resources/ActionGroupWithDataTest.txt | 2 +- ...hDefaultArgumentAndStringSelectorParam.txt | 1 + ...eParameterSelectorsFromDefaultArgument.txt | 1 + .../Resources/ActionGroupWithNoArguments.txt | 1 + .../ActionGroupWithNoDefaultTest.txt | 2 +- ...thPassedArgumentAndStringSelectorParam.txt | 1 + .../ActionGroupWithPersistedData.txt | 2 +- ...WithSimpleDataUsageFromDefaultArgument.txt | 1 + ...pWithSimpleDataUsageFromPassedArgument.txt | 1 + ...leParameterSelectorFromDefaultArgument.txt | 1 + ...gleParameterSelectorFromPassedArgument.txt | 1 + .../ActionGroupWithStepKeyReferences.txt | 1 + .../ActionGroupWithTopLevelPersistedData.txt | 2 +- .../ArgumentWithSameNameAsElement.txt | 2 +- .../verification/Resources/AssertTest.txt | 1 + .../Resources/BasicActionGroupTest.txt | 2 +- .../Resources/BasicFunctionalTest.txt | 2 +- .../verification/Resources/BasicMergeTest.txt | 2 +- .../Resources/CharacterReplacementTest.txt | 1 + .../Resources/DataReplacementTest.txt | 1 + .../Resources/HookActionsTest.txt | 1 + .../Resources/LocatorFunctionTest.txt | 1 + .../Resources/MergedActionGroupTest.txt | 2 +- .../Resources/MergedReferencesTest.txt | 2 +- .../Resources/MultipleActionGroupsTest.txt | 2 +- .../Resources/PageReplacementTest.txt | 1 + .../Resources/ParameterArrayTest.txt | 1 + .../Resources/PersistedReplacementTest.txt | 1 + .../Resources/PersistenceCustomFieldsTest.txt | 1 + .../Resources/SectionReplacementTest.txt | 1 + .../FunctionalTestingFramework/Config/Dom.php | 8 +++++ .../Test/Util/TestObjectExtractor.php | 35 +++++++++++++++++++ 36 files changed, 112 insertions(+), 13 deletions(-) diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php index a03fb4bc1..6ef9af12a 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. * 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/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 be4e3c97c..7fa21c085 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,33 @@ 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 ($path === "") { + return "NO MODULE DETECTED"; + } + $positions = []; + $lastPos = 0; + while (($lastPos = strpos($path, DIRECTORY_SEPARATOR, $lastPos))!== false) { + $positions[] = $lastPos; + $lastPos = $lastPos + strlen(DIRECTORY_SEPARATOR); + } + $slashBeforeModule = $positions[count($positions)-3]; + $slashAfterModule = $positions[count($positions)-2]; + $output = substr($path, $slashBeforeModule+1, $slashAfterModule-$slashBeforeModule-1); + + //Check if file was actually from app/code or vendor + if ($output === "Mftf") { + $slashBeforeModule = $positions[count($positions)-5]; + $slashAfterModule = $positions[count($positions)-4]; + $output = substr($path, $slashBeforeModule+1, $slashAfterModule-$slashBeforeModule-1); + } + return $output; + } } From f0201e532b936b30d1d99e79a5965067aee7e2e3 Mon Sep 17 00:00:00 2001 From: KevinBKozan Date: Fri, 27 Apr 2018 14:13:34 -0500 Subject: [PATCH 2/5] MQE-980: [Annotations] tag defaults to module - CR Fixes --- .../Test/Util/TestObjectExtractor.php | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php index 7fa21c085..27d977ba0 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php +++ b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php @@ -137,22 +137,12 @@ private function extractModuleName($path) if ($path === "") { return "NO MODULE DETECTED"; } - $positions = []; - $lastPos = 0; - while (($lastPos = strpos($path, DIRECTORY_SEPARATOR, $lastPos))!== false) { - $positions[] = $lastPos; - $lastPos = $lastPos + strlen(DIRECTORY_SEPARATOR); + $paths = explode(DIRECTORY_SEPARATOR, $path); + if ($paths[count($paths)-3] == "Mftf") { + // app/code/Magento/[Analytics]/Test/Mftf/Test/SomeText.xml + return $paths[count($paths)-5]; } - $slashBeforeModule = $positions[count($positions)-3]; - $slashAfterModule = $positions[count($positions)-2]; - $output = substr($path, $slashBeforeModule+1, $slashAfterModule-$slashBeforeModule-1); - - //Check if file was actually from app/code or vendor - if ($output === "Mftf") { - $slashBeforeModule = $positions[count($positions)-5]; - $slashAfterModule = $positions[count($positions)-4]; - $output = substr($path, $slashBeforeModule+1, $slashAfterModule-$slashBeforeModule-1); - } - return $output; + // dev/tests/acceptance/tests/functional/Magento/FunctionalTest/[Analytics]/Test/SomeText.xml + return $paths[count($paths)-3]; } } From 091b10e0775e3f9de08dbfe7f578d5d7df203393 Mon Sep 17 00:00:00 2001 From: KevinBKozan Date: Mon, 7 May 2018 11:19:57 -0500 Subject: [PATCH 3/5] MQE-980: [Annotations] tag defaults to module - CR fixes, test updates --- .../Test/Handlers/TestObjectHandlerTest.php | 38 +++++++++++++++++++ .../Test/Util/TestObjectExtractor.php | 6 ++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php index 6ef9af12a..860c8d3bb 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php @@ -141,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/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php index 27d977ba0..312885ca6 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php +++ b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php @@ -134,11 +134,13 @@ public function extractTestData($testData) */ private function extractModuleName($path) { - if ($path === "") { + if (empty($path)) { return "NO MODULE DETECTED"; } $paths = explode(DIRECTORY_SEPARATOR, $path); - if ($paths[count($paths)-3] == "Mftf") { + if (!isset($paths[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]; } From ec5d25a5eb8c1bc4cf44739d47218339602e9d9a Mon Sep 17 00:00:00 2001 From: KevinBKozan Date: Tue, 8 May 2018 11:08:43 -0500 Subject: [PATCH 4/5] MQE-980: [Annotations] tag defaults to module - CR Fixes. --- .../Test/Util/TestObjectExtractor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php index b200e7af3..9dc4b0652 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php +++ b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php @@ -138,7 +138,7 @@ private function extractModuleName($path) return "NO MODULE DETECTED"; } $paths = explode(DIRECTORY_SEPARATOR, $path); - if (!isset($paths[count($paths)-3])) { + if (count($paths) < 3) { return "NO MODULE DETECTED"; } elseif ($paths[count($paths)-3] == "Mftf") { // app/code/Magento/[Analytics]/Test/Mftf/Test/SomeText.xml From 3a07785e4dab5b83bf373a037f80ea7a5a1c654f Mon Sep 17 00:00:00 2001 From: KevinBKozan Date: Tue, 8 May 2018 14:03:11 -0500 Subject: [PATCH 5/5] MQE-980: [Annotations] tag defaults to module - Test Fix --- .../verification/Resources/PersistedAndXmlEntityArguments.txt | 1 + 1 file changed, 1 insertion(+) 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