コード例 #1
0
 /**
  * @param \Symfony\Component\Console\Input\InputInterface $input
  * @param \Symfony\Component\Console\Output\OutputInterface $output
  * @param \Stagehand\TestRunner\DependencyInjection\Transformation\Transformation $transformation
  */
 protected function transformToConfiguration(InputInterface $input, OutputInterface $output, Transformation $transformation)
 {
     if (!is_null($input->getOption('config'))) {
         $transformation->setConfigurationFile($this->fileSystem->getAbsolutePath($input->getOption('config'), ApplicationContext::getInstance()->getEnvironment()->getWorkingDirectoryAtStartup()));
     }
     if (count($input->getArgument('test_directory_or_file')) > 0) {
         $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('resources' => $input->getArgument('test_directory_or_file'))));
     }
     if ($input->getOption('recursive')) {
         $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('recursive' => true)));
     }
     if ($this->getPlugin()->hasFeature('test_methods')) {
         if (count($input->getOption('test-method')) > 0) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('methods' => $input->getOption('test-method'))));
         }
     }
     if ($this->getPlugin()->hasFeature('test_classes')) {
         if (count($input->getOption('test-class')) > 0) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('classes' => $input->getOption('test-class'))));
         }
     }
     if (!is_null($input->getOption('test-file-pattern'))) {
         $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('test_targets' => array('file_pattern' => $input->getOption('test-file-pattern'))));
     }
     if ($this->getPlugin()->hasFeature('autotest')) {
         if ($input->getOption('autotest')) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('autotest' => array('enabled' => true)));
         }
         if (count($input->getOption('watch-dir')) > 0) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('autotest' => array('watch_dirs' => $input->getOption('watch-dir'))));
         }
     }
     if ($this->getPlugin()->hasFeature('notify')) {
         if ($input->getOption('notify')) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('notify' => true));
         }
     }
     if ($this->getPlugin()->hasFeature('junit_xml')) {
         if (!is_null($input->getOption('log-junit'))) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('junit_xml' => array('file' => $input->getOption('log-junit'))));
         }
         if ($input->getOption('log-junit-realtime')) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('junit_xml' => array('realtime' => true)));
         }
     }
     if ($this->getPlugin()->hasFeature('stop_on_failure')) {
         if ($input->getOption('stop-on-failure')) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('stop_on_failure' => true));
         }
     }
     if ($this->getPlugin()->hasFeature('detailed_progress')) {
         if ($input->getOption('detailed-progress')) {
             $transformation->setConfigurationPart(GeneralConfiguration::getConfigurationID(), array('detailed_progress' => true));
         }
     }
     $this->doTransformToConfiguration($input, $output, $transformation);
 }
コード例 #2
0
 /**
  * Collects tests.
  *
  * @return mixed
  * @throws \UnexpectedValueException
  */
 public function collect()
 {
     $self = $this;
     $fileSystem = new FileSystem();
     $environment = $this->environment;
     $this->testTargetRepository->walkOnResources(function ($resource, $index, TestTargetRepository $testTargetRepository) use($self, $fileSystem, $environment) {
         $absoluteTargetPath = $fileSystem->getAbsolutePath($resource, $environment->getWorkingDirectoryAtStartup());
         if (!file_exists($absoluteTargetPath)) {
             throw new \UnexpectedValueException(sprintf('The directory or file [ %s ] is not found', $absoluteTargetPath));
         }
         if (is_dir($absoluteTargetPath)) {
             $finder = Finder::create()->files()->in($absoluteTargetPath)->depth($self->isRecursive() ? '>= 0' : '== 0')->sortByName();
             foreach ($finder as $file) {
                 call_user_func(array($self, 'collectTestCasesFromFile'), $file->getPathname());
             }
         } else {
             call_user_func(array($self, 'collectTestCasesFromFile'), $absoluteTargetPath);
         }
     });
     return $this->suite;
 }