/** * Run a test */ public function run(PHPUnit_Framework_TestSuite $suite) { $res = new PHPUnit_Framework_TestResult(); if ($this->codecoverage) { $whitelist = CoverageMerger::getWhiteList($this->project); $this->codecoverage->filter()->addFilesToWhiteList($whitelist); $res->setCodeCoverage($this->codecoverage); } $res->addListener($this); foreach ($this->formatters as $formatter) { $res->addListener($formatter); } /* Set PHPUnit error handler */ if ($this->useCustomErrorHandler) { $oldErrorHandler = set_error_handler(array($this, 'handleError'), E_ALL | E_STRICT); } $suite->run($res, false, $this->groups, $this->excludeGroups, $this->processIsolation); foreach ($this->formatters as $formatter) { $formatter->processResult($res); } /* Restore Phing error handler */ if ($this->useCustomErrorHandler) { restore_error_handler(); } if ($this->codecoverage) { CoverageMerger::merge($this->project, $this->codecoverage->getData()); } if ($res->errorCount() != 0) { $this->retCode = self::ERRORS; } else { if ($res->failureCount() != 0) { $this->retCode = self::FAILURES; } else { if ($res->notImplementedCount() != 0) { $this->retCode = self::INCOMPLETES; } else { if ($res->skippedCount() != 0) { $this->retCode = self::SKIPPED; } } } } }
/** * Run a test * * @param PHPUnit_Framework_TestSuite $suite */ public function run(PHPUnit_Framework_TestSuite $suite) { $res = new PHPUnit_Framework_TestResult(); if ($this->codecoverage) { $whitelist = CoverageMerger::getWhiteList($this->project); $this->codecoverage->filter()->addFilesToWhiteList($whitelist); $res->setCodeCoverage($this->codecoverage); } $res->addListener($this); foreach ($this->formatters as $formatter) { $res->addListener($formatter); } /* Set PHPUnit error handler */ if ($this->useCustomErrorHandler) { $oldErrorHandler = set_error_handler(array($this, 'handleError'), E_ALL | E_STRICT); } $version = PHPUnit_Runner_Version::id(); if (version_compare($version, '4.0.0') >= 0) { $this->injectFilters($suite); $suite->run($res); } else { $suite->run($res, false, $this->groups, $this->excludeGroups, $this->processIsolation); } foreach ($this->formatters as $formatter) { $formatter->processResult($res); } /* Restore Phing error handler */ if ($this->useCustomErrorHandler) { restore_error_handler(); } if ($this->codecoverage) { CoverageMerger::merge($this->project, $this->codecoverage->getData()); } $this->checkResult($res); }