Skip to content

Commit 995016a

Browse files
committed
MQE-1713: Generate/run test in single suite context
- added support for 'suite:test' syntax in generate and run:test command - minor fixes to exceptions in suite mechanisms
1 parent 231e58d commit 995016a

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/Console/BaseGenerateCommandTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,24 @@ public function testThreeTestOneSuiteOneGroupMix()
156156
$this->assertEquals($expected, $actual);
157157
}
158158

159+
public function testSuiteToTestSyntax()
160+
{
161+
$testOne = new TestObject('Test1', [], [], []);
162+
$suiteOne = new SuiteObject(
163+
'Suite1',
164+
['Test1' => $testOne],
165+
[],
166+
[]
167+
);
168+
169+
$testArray = ['Test1' => $testOne];
170+
$suiteArray = ['Suite1' => $suiteOne];
171+
$this->mockHandlers($testArray, $suiteArray);
172+
$actual = json_decode($this->callTestConfig(['Suite1:Test1']), true);
173+
$expected = ['tests' => null, 'suites' => ['Suite1' => ['Test1']]];
174+
$this->assertEquals($expected, $actual);
175+
}
176+
159177
/**
160178
* Mock handlers to skip parsing
161179
* @param array $testArray

src/Magento/FunctionalTestingFramework/Console/BaseGenerateCommand.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ protected function getTestAndSuiteConfiguration(array $tests)
8787
$suiteToTestPair = [];
8888

8989
foreach($tests as $test) {
90+
if (strpos($test, ':') !== null) {
91+
$suiteToTestPair[] = $test;
92+
continue;
93+
}
9094
if (array_key_exists($test, $testsReferencedInSuites)) {
9195
$suites = $testsReferencedInSuites[$test];
9296
foreach ($suites as $suite) {

src/Magento/FunctionalTestingFramework/Suite/Handlers/SuiteObjectHandler.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
namespace Magento\FunctionalTestingFramework\Suite\Handlers;
77

8+
use Magento\FunctionalTestingFramework\Exceptions\TestReferenceException;
89
use Magento\FunctionalTestingFramework\Exceptions\XmlException;
910
use Magento\FunctionalTestingFramework\ObjectManager\ObjectHandlerInterface;
1011
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
@@ -73,7 +74,7 @@ public static function getInstance(): ObjectHandlerInterface
7374
public function getObject($objectName): SuiteObject
7475
{
7576
if (!array_key_exists($objectName, $this->suiteObjects)) {
76-
trigger_error("Suite ${objectName} is not defined.", E_USER_ERROR);
77+
throw new TestReferenceException("Suite ${objectName} is not defined in xml.");
7778
}
7879
return $this->suiteObjects[$objectName];
7980
}

src/Magento/FunctionalTestingFramework/Suite/SuiteGenerator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ private function validateTestsReferencedInSuite($suiteName, $testsReferenced, $o
178178
{
179179
$suiteRef = $originalSuiteName ?? $suiteName;
180180
$possibleTestRef = SuiteObjectHandler::getInstance()->getObject($suiteRef)->getTests();
181-
$errorMsg = "Cannot reference tests whcih are not declared as part of suite.";
181+
$errorMsg = "Cannot reference tests which are not declared as part of suite.";
182182

183183
$invalidTestRef = array_diff($testsReferenced, array_keys($possibleTestRef));
184184

0 commit comments

Comments
 (0)