function its_runAll_create_success_event_if_results_only_contain_success_events(Runner $runner)
 {
     $results = array('succeed1' => ResultEvent::createSucceed('Succeed1'), 'succeed2' => ResultEvent::createSucceed('Succeed2'), 'succeed3' => ResultEvent::createSucceed('Succeed3'));
     Filesystem::create()->serialize($this->cacheFile, $results);
     $runner->run(Argument::any())->shouldBeCalled();
     $results = $this->runAll()->getResults();
     $results->shouldHaveCount(1);
     $result = $results[0];
     $result->shouldBeSucceed();
 }
 function its_runAll_should_set_application_exit_code_if_results_has_failed_or_broken(ContainerInterface $container)
 {
     $failed = ResultEvent::createFailed('Failed', array('file' => 'some_file'));
     $success = ResultEvent::createSucceed('Success');
     Filesystem::create()->serialize($this->cacheFile, array('failed' => $failed, 'success' => $success));
     $container->setParameter('application.exit_code', ResultEvent::FAILED)->shouldBeCalled();
     $this->runAll();
 }
Example #3
0
 private function doRunAll()
 {
     $command = $this->cmdRunAll;
     if ($this->options['keep_failed']) {
         $files = array();
         foreach ($this->failed as $key => $failedEvent) {
             $file = $failedEvent->getArgument('file');
             if (file_exists($file)) {
                 $file = ltrim(str_replace(getcwd(), '', $file), '\\/');
                 if (!in_array($file, $files)) {
                     $files[] = $file;
                 }
             }
         }
         $files = array_unique($files);
         if (!empty($files)) {
             $command = $this->cmdRun;
             $specFiles = implode(',', $files);
             $command = $command . ' --spec-files=' . $specFiles;
             $this->logger->debug('Keep failed spec run');
         }
     }
     // start to run phpspec command
     $arguments = explode(' ', $command);
     $builder = new ProcessBuilder($arguments);
     $runner = $this->getRunner();
     $runner->run($builder);
     // not showing success events for run all
     $results = $this->renderResult(false);
     if (count($this->failed) === 0) {
         $results[] = ResultEvent::createSucceed('Run all specs success');
     }
     return $results;
 }
Example #4
0
 /**
  * @return ResultEvent[]
  */
 private function doRunAll()
 {
     $results = array();
     $arguments = $this->runAllArgs;
     $this->session = Session::create();
     if ($this->isFailed()) {
         $rerunFile = $this->session->generateRerunFile();
         $arguments[] = '--rerun=' . $rerunFile;
     }
     $builder = new ProcessBuilder($arguments);
     $this->getRunner()->run($builder);
     $this->session = Session::create();
     if (!$this->isFailed()) {
         $results[] = ResultEvent::createSucceed(static::RUN_ALL_SUCCESS_MESSAGE);
     } else {
         $results = $this->session->getResults();
         $results[] = ResultEvent::createFailed(static::RUN_ALL_FAILED_MESSAGE);
     }
     return $results;
 }
Example #5
0
 private function doRunAll()
 {
     $args = $this->runAllCli;
     $args = explode(' ', $args);
     if (count($this->failed) > 0) {
         $files = array();
         foreach ($this->failed as $file) {
             //$file=$resultEvent->getArgument('file');
             $file = ltrim(str_replace(getcwd(), '', $file), '\\/');
             $files[] = $file;
         }
         if (!empty($files)) {
             $this->getLogger()->addDebug('keep failed tests run');
             $files = array_unique($files);
             $args[] = implode(',', $files);
         }
     }
     $builder = new ProcessBuilder($args);
     $builder->setPrefix($this->executable);
     $runner = $this->getRunner();
     $runner->run($builder);
     $results = $this->checkResult(false);
     if (0 === count($this->failed)) {
         $results['all_after_pass'] = ResultEvent::createSucceed(static::MSG_RUN_ALL_SUCCESS);
     }
     return $results;
 }