PHPUnit_Framework_TestResult::addError PHP Method

addError() public method

Adds an error to the list of errors.
public addError ( PHPUnit_Framework_Test $test, Throwable $t, float $time )
$test PHPUnit_Framework_Test
$t Throwable
$time float
    public function addError(PHPUnit_Framework_Test $test, Throwable $t, $time)
    {
        if ($t instanceof PHPUnit_Framework_RiskyTest) {
            $this->risky[] = new PHPUnit_Framework_TestFailure($test, $t);
            $notifyMethod = 'addRiskyTest';
            if ($this->stopOnRisky) {
                $this->stop();
            }
        } elseif ($t instanceof PHPUnit_Framework_IncompleteTest) {
            $this->notImplemented[] = new PHPUnit_Framework_TestFailure($test, $t);
            $notifyMethod = 'addIncompleteTest';
            if ($this->stopOnIncomplete) {
                $this->stop();
            }
        } elseif ($t instanceof PHPUnit_Framework_SkippedTest) {
            $this->skipped[] = new PHPUnit_Framework_TestFailure($test, $t);
            $notifyMethod = 'addSkippedTest';
            if ($this->stopOnSkipped) {
                $this->stop();
            }
        } else {
            $this->errors[] = new PHPUnit_Framework_TestFailure($test, $t);
            $notifyMethod = 'addError';
            if ($this->stopOnError || $this->stopOnFailure) {
                $this->stop();
            }
        }
        // @see https://github.com/sebastianbergmann/phpunit/issues/1953
        if ($t instanceof Error) {
            $t = new PHPUnit_Framework_ExceptionWrapper($t);
        }
        foreach ($this->listeners as $listener) {
            $listener->{$notifyMethod}($test, $t, $time);
        }
        $this->lastTestFailed = true;
        $this->time += $time;
    }

Usage Example

Beispiel #1
0
 /**
  * Makes the processChildResult inherited method public.
  *
  * @param \PHPUnit_Framework_Test $test
  * @param \PHPUnit_Framework_TestResult $result
  * @param string $stdout
  * @param string $stderr
  * @return void
  */
 public function processChildResult(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_TestResult $result, $stdout, $stderr)
 {
     $time = 0;
     if (!empty($stderr)) {
         $result->addError($test, new \PHPUnit_Framework_Exception(trim($stderr)), $time);
     } else {
         set_error_handler(function ($errno, $errstr, $errfile, $errline) {
             throw new \ErrorException($errstr, $errno, $errno, $errfile, $errline);
         });
         try {
             if (strpos($stdout, "#!/usr/bin/env php\n") === 0) {
                 $stdout = substr($stdout, 19);
             }
             $childResult = unserialize(str_replace("#!/usr/bin/env php\n", '', $stdout));
             restore_error_handler();
         } catch (\ErrorException $e) {
             restore_error_handler();
             $childResult = false;
             $result->addError($test, new \PHPUnit_Framework_Exception(trim($stdout), 0, $e), $time);
         }
         if ($childResult !== false) {
             if (!empty($childResult['output'])) {
                 print $childResult['output'];
             }
             $test->setResult($childResult['testResult']);
             $test->addToAssertionCount($childResult['numAssertions']);
             $childResult = $childResult['result'];
             if ($result->getCollectCodeCoverageInformation()) {
                 $result->getCodeCoverage()->merge($childResult->getCodeCoverage());
             }
             $time = $childResult->time();
             $notImplemented = $childResult->notImplemented();
             $risky = $childResult->risky();
             $skipped = $childResult->skipped();
             $errors = $childResult->errors();
             $failures = $childResult->failures();
             if (!empty($notImplemented)) {
                 $result->addError($test, $this->getException($notImplemented[0]), $time);
             } elseif (!empty($risky)) {
                 $result->addError($test, $this->getException($risky[0]), $time);
             } elseif (!empty($skipped)) {
                 $result->addError($test, $this->getException($skipped[0]), $time);
             } elseif (!empty($errors)) {
                 foreach ($errors as $error) {
                     $result->addError($test, $this->getException($error), $time);
                 }
             } elseif (!empty($failures)) {
                 foreach ($failures as $failure) {
                     $result->addFailure($test, $this->getException($failure), $time);
                 }
             }
         }
     }
     $result->endTest($test, $time);
 }
All Usage Examples Of PHPUnit_Framework_TestResult::addError