/**
  * 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);
 }