$services = [$service => $versions]; } return $services; } private function toCamelCase($word, $separator = '_') { return str_replace($separator, '', ucwords($word, $separator)); } public function runServices() { list($serviceOpt, $versionOpt, $testMethodOpt, $debugOpt) = $this->getOpts(); $services = $this->getRunnableServices($serviceOpt, $versionOpt, $testMethodOpt); foreach ($services as $serviceName => $versions) { foreach ($versions as $version) { $class = sprintf("%s\\%s\\%sTest", __NAMESPACE__, $this->toCamelCase($serviceName), ucfirst($version)); $testRunner = new $class($this->logger, $debugOpt); if ($testMethodOpt && method_exists($testRunner, $testMethodOpt)) { $testRunner->startTimer(); $testRunner->{$testMethodOpt}(); } else { $testRunner->runTests(); } $testRunner->deletePaths(); } } } } require_once dirname(dirname(__DIR__)) . '/vendor/autoload.php'; $runner = new Runner(); $runner->runServices();