From 106201840261d4421f8aa9331eadc38fdcf7d73e Mon Sep 17 00:00:00 2001 From: Tom Erskine Date: Mon, 2 Apr 2018 16:24:40 -0500 Subject: [PATCH] MQE-876: Add Skipped Tests in Allure Report - TestObject now has getter for boolean for check if group annotation is skip - Test Generator generates skip code if the above getter returns true MQE-876: Add Skipped Tests in Allure Report - Fixed Static checks MQE-876: Add Skipped Tests in Allure Report - Refactored based on review MQE-876: Add Skipped Tests in Allure Report - Added newline to skip test generation to meet coding standards --- .../Test/Objects/TestObject.php | 13 +++++++++++++ .../Util/TestGenerator.php | 13 +++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/TestObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/TestObject.php index 818e87924..b2e4ee907 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Objects/TestObject.php +++ b/src/Magento/FunctionalTestingFramework/Test/Objects/TestObject.php @@ -88,6 +88,19 @@ public function getFilename() return $this->filename; } + /** + * Getter for the skip_test boolean + * + * @return string + */ + public function isSkipped() + { + if (array_key_exists('group', $this->annotations) && (in_array("skip", $this->annotations['group']))) { + return true; + } + return false; + } + /** * Getter for Codeception format name * diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index cae931611..e1b15791f 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -1507,10 +1507,15 @@ private function generateTestPhp($test) $testName = str_replace(' ', '', $testName); $testAnnotations = $this->generateAnnotationsPhp($test->getAnnotations(), true); $dependencies = 'AcceptanceTester $I'; - try { - $steps = $this->generateStepsPhp($test->getOrderedActions()); - } catch (TestReferenceException $e) { - throw new TestReferenceException($e->getMessage() . " in Test \"" . $test->getName() . "\""); + if ($test->isSkipped()) { + $steps = "\t\t" . '$scenario->skip("This test is skipped");' . "\n"; + $dependencies .= ', \Codeception\Scenario $scenario'; + } else { + try { + $steps = $this->generateStepsPhp($test->getOrderedActions()); + } catch (TestReferenceException $e) { + throw new TestReferenceException($e->getMessage() . " in Test \"" . $test->getName() . "\""); + } } $testPhp .= $testAnnotations;