Exemplo n.º 1
0
 /**
  * @return array
  */
 protected function getMutables()
 {
     if ($this->mutables === null) {
         $this->mutables = $this->container->getMutableFiles($this->finder);
     }
     return $this->mutables;
 }
Exemplo n.º 2
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;
 }
Exemplo n.º 3
0
 /**
  * @param CoverageData $coverage
  * @param string $file
  * @return bool
  */
 public function hasModifiedTestFiles(CoverageData $coverage, $file)
 {
     $tests = $coverage->getAllTestClasses($file);
     $testFiles = [];
     foreach ($tests as $test) {
         $tfile = $this->container->getAdapter()->getClassFile($test, $this->container);
         $this->testCollector->collect($tfile);
         $testFiles[] = $tfile;
     }
     foreach ($testFiles as $testFile) {
         if (!$this->cachedTestCollection->hasFile($testFile)) {
             return true;
         }
         $currentHash = $this->testCollector->getCollection()->getFileHash($testFile);
         $previousHash = $this->cachedTestCollection->getFileHash($testFile);
         if ($currentHash !== $previousHash) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 4
0
 /**
  * @param Container $container
  * @return array
  */
 private function getExcludeDirs(Container $container)
 {
     $srcList = $container->getSourceList();
     return isset($srcList->excludes) ? $this->getRealPathList($srcList->excludes) : [];
 }
Exemplo n.º 5
0
 public function __construct(Container $container)
 {
     $this->adapter = $container->getAdapter();
     $this->container = $container;
 }