public function transformToContainerParameters() { if (!is_null($this->configurationFile)) { foreach (Yaml::parse(file_get_contents($this->configurationFile)) as $configurationID => $configurationPart) { if (!is_null($configurationPart)) { if (!array_key_exists($configurationID, $this->configuration)) { $this->configuration[$configurationID] = array(); } array_unshift($this->configuration[$configurationID], $configurationPart); } } } foreach ($this->configuration as $configurationID => $configurationParts) { $configurations = array(); foreach ($configurationParts as $configurationPart) { $configurations[] = $configurationPart; } if ($configurationID == GeneralConfiguration::getConfigurationID()) { $transformerID = 'General'; } else { $plugin = PluginRepository::findByPluginID($configurationID); $transformerID = $plugin->getPluginID(); } $transformerClass = __NAMESPACE__ . '\\' . $transformerID . 'Transformer'; $transformer = new $transformerClass($configurations, $this->container); /* @var $transformer \Stagehand\TestRunner\DependencyInjection\Transformation\Transformer */ $transformer->transform(); } if (is_null($this->container->getParameter('test_file_pattern'))) { $this->container->setParameter('test_file_pattern', $this->plugin->getTestFilePattern()); } }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { $container->setAlias('preparer', $this->plugin->getPluginID() . '.preparer'); $container->setAlias('collector', $this->plugin->getPluginID() . '.collector'); $container->setAlias('runner', $this->plugin->getPluginID() . '.runner'); if ($container->hasDefinition($this->plugin->getPluginID() . '.command_line_option_builder')) { $container->setAlias('command_line_option_builder', $this->plugin->getPluginID() . '.command_line_option_builder'); } }
/** * @param string $command * * @return array */ protected function buildOptions($command) { $options = array(); if (basename(trim($command, '\'"')) != 'testrunner') { $configFile = $this->getPHPConfigDir(); if ($configFile !== false) { $options[] = '-c'; $options[] = escapeshellarg($configFile); } $options[] = escapeshellarg($_SERVER['argv'][0]); } if ($this->terminal->shouldColor()) { $options[] = '--ansi'; } $options[] = escapeshellarg(strtolower($this->plugin->getPluginID())); if (!is_null($this->environment->getPreloadScript())) { $options[] = '-p ' . escapeshellarg($this->environment->getPreloadScript()); } $options[] = '-R'; if ($this->runner->shouldNotify()) { $options[] = '-m'; } if ($this->runner->shouldStopOnFailure()) { $options[] = '--stop-on-failure'; } if (!$this->testTargetRepository->isDefaultFilePattern()) { $options[] = '--test-file-pattern=' . escapeshellarg($this->testTargetRepository->getFilePattern()); } if ($this->runner->hasDetailedProgress()) { $options[] = '--detailed-progress'; } if (!is_null($this->commandLineOptionBuilder)) { $options = $this->commandLineOptionBuilder->build($options); } $this->testTargetRepository->walkOnResources(function ($resource, $index, TestTargetRepository $testTargetRepository) use(&$options) { $options[] = escapeshellarg($resource); }); return $options; }
/** * @return array */ public function getRequiredSuperTypes() { return $this->plugin->getTestClassSuperTypes(); }