public function run(TestRequest $test) { if (!$this->process->isRunning()) { $this->process->stop(); $this->process->start(); } $this->debug("Added " . $test->encode()); $this->testErr = ''; $this->pendingRequests->enqueue($test); $this->process->write($test->encode()); }
/** * A test ended. * * @param PHPUnit_Framework_Test $test * @param float $time */ public function endTest(PHPUnit_Framework_Test $test, $time) { echo $test->getActualOutput(); $reflectionClass = new \ReflectionClass($test); $result = new TestResult(['testId' => $this->request->getId(), 'class' => get_class($test), 'name' => $test->getName(), 'filename' => $reflectionClass->getFileName(), 'elapsed' => $time, 'memoryUsed' => memory_get_usage() - $this->startingMemory, 'errors' => $this->errors, 'incomplete' => $this->incomplete, 'skipped' => $this->skipped, 'risky' => $this->risky]); $this->sendError($result); }
public function run(array $argv, $exit = true, $memoryTracking = true, $bootstrap = null) { require_once __DIR__ . '/../printer/SerializePrinter.php'; $this->arguments['printer'] = $this->handlePrinter('phpunit_parallel\\printer\\SerializePrinter'); if ($bootstrap) { $this->arguments['bootstrap'] = $bootstrap; } $this->handleConfig(); $runner = $this->createRunner(); while ($testDetails = fgets(STDIN)) { if ($memoryTracking) { gc_collect_cycles(); } if ($request = TestRequest::decode($testDetails)) { SerializePrinter::getInstance()->setCurrentRequest($request); $escapedClassName = str_replace('\\', '\\\\', $request->getClass()); $this->arguments['filter'] = "^{$escapedClassName}::{$request->getName()}\$"; $suite = new \PHPUnit_Framework_TestSuite($request->getClass()); $suite->addTestFile($request->getFilename()); $result = $runner->doRun($suite, $this->arguments); if ($result->count() === 0) { $this->showError($request, "Test not found!"); } elseif ($result->count() > 1) { $this->showError($request, "Multiple tests executed!"); } } } return 0; }