Exemple #1
0
 /**
  * @param Container $container
  * @param Text $renderer
  * @param OutputInterface $output
  *
  * @return Runner
  */
 public function build(Container $container, Text $renderer, InputInterface $input, OutputInterface $output)
 {
     /**
      * We can do parallel runs, but typically two test runs will compete for
      * any uninsulated resources (e.g. files/database) so hardcoded to 1 for now.
      *
      * TODO: Move PHPUnit specific stuff to adapter...
      */
     $mutantGenerator = new FileGenerator($container->getTempDirectory());
     $processBuilder = new ProcessBuilder($container);
     $testSuite = new Runner($mutantGenerator, $processBuilder, $container->getBaseDirectory(), 1);
     $testSuite->addObserver(new LoggingObserver($renderer, $output));
     $testSuite->addObserver(new PerformanceObserver($renderer, $input));
     $testSuite->addObserver($spinnerObserver = new SpinnerObserver($input, $output));
     if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
         $spinnerObserver->setStates(['◓', '◑', '◒', '◐']);
     }
     /**
      * Add logging observers
      */
     if ($this->jsonLogFile) {
         $testSuite->addObserver(new JsonLoggingObserver($renderer, $this->jsonLogFile));
     }
     if ($this->textLogFile) {
         $testSuite->addObserver(new TextLoggingObserver($renderer, $this->textLogFile));
     }
     return $testSuite;
 }
 public function onShadowMutant(Runner $testSuite, $mutationIndex)
 {
     $this->renderer->renderShadowMark($testSuite->getMutableCount(), $mutationIndex);
 }