testSuite(); $suite = new TestSuite(); foreach ($suitesConfig as $suiteConfig) { if ($suiteConfig->name() === 'Magento Integration Tests') { continue; } $suites = self::getSuites($suiteConfig); /** @var TestSuite $testSuite */ foreach ($suites as $testSuite) { /** @var TestSuite $test */ foreach ($testSuite as $test) { $testName = $test->getName(); if ($overrideConfig->hasSkippedTest($testName) && !$test instanceof SkippableInterface) { $reflectionClass = new \ReflectionClass($testName); $resultTest = $generator->generateTestWrapper($reflectionClass); $suite->addTest(new TestSuite($resultTest, $testName)); } else { $suite->addTest($test); } } } } return $suite; } /** * Returns config file name from command line params. * * @return string */ private static function getConfigurationFile(): string { $params = getopt('c:', ['configuration:']); $defaultConfigFile = file_exists(__DIR__ . '../../phpunit.xml') ? __DIR__ . '/../../phpunit.xml' : __DIR__ . '/../../phpunit.xml.dist'; $longConfig = $params['configuration'] ?? $defaultConfigFile; $shortConfig = $params['c'] ?? ''; return $shortConfig ?: $longConfig; } /** * Retrieve configuration. * * @return Configuration */ private static function getConfiguration() { return (new Loader())->load(self::getConfigurationFile()); } /** * Retrieve test suites by suite config. * * @param TestSuiteConfiguration $suiteConfig * * @return TestSuite */ private static function getSuites($suiteConfig) { return (new TestSuiteMapper())->map(TestSuiteCollection::fromArray([$suiteConfig]), ''); } }