/** * Populate the collection of test case objects of a given test Suite * from an array that contains test cases path * * @param TestSuite $testSuite Target test suite to populate * @param Array $testCaseArray List of testcases to attach to the testsuite * @param Boolean $isDependency Is the testcases added by the user or added as dependency * * @return Array */ function populateTestSuite($testSuite, $testCasesArray, $isDependency = false) { foreach ($testCasesArray as $test) { try { $testCase = new TestCase(substr($test, 0, -3)); if ($testCase->checkTags()) { $missingParams = $testCase->checkSetupParams(); if (!empty($missingParams)) { $this->error[] = 'Testcase "' . $test . '" requeires missing conf param(s): ' . join(', ', $missingParams); } $dependencies = $testCase->getDependencies(); try { $this->attachDependencies($testSuite, $dependencies, $test); } catch (OutOfRangeException $exception) { $this->error[] = $exception->getMessage(); } $testSuite->attach($testCase, $isDependency); $this->storeTestCase($testCase, $testSuite); } else { $this->error[] = 'Testcase "' . $test . '" were removed due to an incompatible tag'; } } catch (RuntimeException $e) { $this->logger->LogWarning($e->getMessage()); $this->error[] = $e->getMessage(); } } return array("info" => $this->info, "error" => $this->error); }