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(); }
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; }
/** * @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; }
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; }