31 private static $testObjectHandler;
55 if (!self::$testObjectHandler) {
57 self::$testObjectHandler->initTestData();
60 return self::$testObjectHandler;
66 private function __construct()
80 if (!array_key_exists($testName, $this->
tests)) {
83 $testObject = $this->
tests[$testName];
85 return $this->extendTest($testObject);
95 foreach ($this->
tests as $testName => $test) {
96 $this->
tests[$testName] = $this->extendTest($test);
107 public function getTestsByGroup($groupName)
110 foreach ($this->
tests as $test) {
112 if (in_array($groupName, $test->getAnnotationByName(
'group'))) {
113 $relevantTests[$test->getName()] = $test;
118 return $relevantTests;
128 private function initTestData()
131 $parsedTestArray = $testDataParser->readTestData();
133 $testObjectExtractor =
new TestObjectExtractor();
135 if (!$parsedTestArray) {
136 trigger_error(
"Could not parse any test in xml.", E_USER_NOTICE);
140 $exceptionCollector =
new ExceptionCollector();
142 if (!is_array($testData)) {
146 $this->
tests[$testName] = $testObjectExtractor->extractTestData($testData);
147 }
catch (XmlException $exception) {
148 $exceptionCollector->addError(self::class, $exception->getMessage());
151 $exceptionCollector->throwException();
153 $testObjectExtractor->getAnnotationExtractor()->validateStoryTitleUniqueness();
154 $testObjectExtractor->getAnnotationExtractor()->validateTestCaseIdTitleUniqueness();
163 private function extendTest($testObject)
165 if ($testObject->getParentName() !==
null) {
166 return $this->extendUtil->extendTest($testObject);
static getObjectManager()