/** * @return array */ protected function getMutables() { if ($this->mutables === null) { $this->mutables = $this->container->getMutableFiles($this->finder); } return $this->mutables; }
/** * @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; }
/** * @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; }
/** * @param Container $container * @return array */ private function getExcludeDirs(Container $container) { $srcList = $container->getSourceList(); return isset($srcList->excludes) ? $this->getRealPathList($srcList->excludes) : []; }
public function __construct(Container $container) { $this->adapter = $container->getAdapter(); $this->container = $container; }