You are here

class PHPUnit_Framework_TestResult in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/phpunit/phpunit/src/Framework/TestResult.php \PHPUnit_Framework_TestResult

A TestResult collects the results of executing a test case.

@since Class available since Release 2.0.0

Hierarchy

Expanded class hierarchy of PHPUnit_Framework_TestResult

File

vendor/phpunit/phpunit/src/Framework/TestResult.php, line 16

View source
class PHPUnit_Framework_TestResult implements Countable {

  /**
   * @var array
   */
  protected $passed = array();

  /**
   * @var array
   */
  protected $errors = array();

  /**
   * @var array
   */
  protected $failures = array();

  /**
   * @var array
   */
  protected $notImplemented = array();

  /**
   * @var array
   */
  protected $risky = array();

  /**
   * @var array
   */
  protected $skipped = array();

  /**
   * @var array
   */
  protected $listeners = array();

  /**
   * @var int
   */
  protected $runTests = 0;

  /**
   * @var float
   */
  protected $time = 0;

  /**
   * @var PHPUnit_Framework_TestSuite
   */
  protected $topTestSuite = null;

  /**
   * Code Coverage information.
   *
   * @var PHP_CodeCoverage
   */
  protected $codeCoverage;

  /**
   * @var bool
   */
  protected $convertErrorsToExceptions = true;

  /**
   * @var bool
   */
  protected $stop = false;

  /**
   * @var bool
   */
  protected $stopOnError = false;

  /**
   * @var bool
   */
  protected $stopOnFailure = false;

  /**
   * @var bool
   */
  protected $beStrictAboutTestsThatDoNotTestAnything = false;

  /**
   * @var bool
   */
  protected $beStrictAboutOutputDuringTests = false;

  /**
   * @var bool
   */
  protected $beStrictAboutTestSize = false;

  /**
   * @var bool
   */
  protected $beStrictAboutTodoAnnotatedTests = false;

  /**
   * @var bool
   */
  protected $stopOnRisky = false;

  /**
   * @var bool
   */
  protected $stopOnIncomplete = false;

  /**
   * @var bool
   */
  protected $stopOnSkipped = false;

  /**
   * @var bool
   */
  protected $lastTestFailed = false;

  /**
   * @var int
   */
  protected $timeoutForSmallTests = 1;

  /**
   * @var int
   */
  protected $timeoutForMediumTests = 10;

  /**
   * @var int
   */
  protected $timeoutForLargeTests = 60;

  /**
   * Registers a TestListener.
   *
   * @param  PHPUnit_Framework_TestListener
   */
  public function addListener(PHPUnit_Framework_TestListener $listener) {
    $this->listeners[] = $listener;
  }

  /**
   * Unregisters a TestListener.
   *
   * @param PHPUnit_Framework_TestListener $listener
   */
  public function removeListener(PHPUnit_Framework_TestListener $listener) {
    foreach ($this->listeners as $key => $_listener) {
      if ($listener === $_listener) {
        unset($this->listeners[$key]);
      }
    }
  }

  /**
   * Flushes all flushable TestListeners.
   *
   * @since  Method available since Release 3.0.0
   */
  public function flushListeners() {
    foreach ($this->listeners as $listener) {
      if ($listener instanceof PHPUnit_Util_Printer) {
        $listener
          ->flush();
      }
    }
  }

  /**
   * Adds an error to the list of errors.
   *
   * @param PHPUnit_Framework_Test $test
   * @param Exception              $e
   * @param float                  $time
   */
  public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) {
    if ($e instanceof PHPUnit_Framework_RiskyTest) {
      $this->risky[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addRiskyTest';
      if ($this->stopOnRisky) {
        $this
          ->stop();
      }
    }
    elseif ($e instanceof PHPUnit_Framework_IncompleteTest) {
      $this->notImplemented[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addIncompleteTest';
      if ($this->stopOnIncomplete) {
        $this
          ->stop();
      }
    }
    elseif ($e instanceof PHPUnit_Framework_SkippedTest) {
      $this->skipped[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addSkippedTest';
      if ($this->stopOnSkipped) {
        $this
          ->stop();
      }
    }
    else {
      $this->errors[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addError';
      if ($this->stopOnError || $this->stopOnFailure) {
        $this
          ->stop();
      }
    }
    foreach ($this->listeners as $listener) {
      $listener
        ->{$notifyMethod}($test, $e, $time);
    }
    $this->lastTestFailed = true;
    $this->time += $time;
  }

  /**
   * Adds a failure to the list of failures.
   * The passed in exception caused the failure.
   *
   * @param PHPUnit_Framework_Test                 $test
   * @param PHPUnit_Framework_AssertionFailedError $e
   * @param float                                  $time
   */
  public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) {
    if ($e instanceof PHPUnit_Framework_RiskyTest || $e instanceof PHPUnit_Framework_OutputError) {
      $this->risky[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addRiskyTest';
      if ($this->stopOnRisky) {
        $this
          ->stop();
      }
    }
    elseif ($e instanceof PHPUnit_Framework_IncompleteTest) {
      $this->notImplemented[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addIncompleteTest';
      if ($this->stopOnIncomplete) {
        $this
          ->stop();
      }
    }
    elseif ($e instanceof PHPUnit_Framework_SkippedTest) {
      $this->skipped[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addSkippedTest';
      if ($this->stopOnSkipped) {
        $this
          ->stop();
      }
    }
    else {
      $this->failures[] = new PHPUnit_Framework_TestFailure($test, $e);
      $notifyMethod = 'addFailure';
      if ($this->stopOnFailure) {
        $this
          ->stop();
      }
    }
    foreach ($this->listeners as $listener) {
      $listener
        ->{$notifyMethod}($test, $e, $time);
    }
    $this->lastTestFailed = true;
    $this->time += $time;
  }

  /**
   * Informs the result that a testsuite will be started.
   *
   * @param PHPUnit_Framework_TestSuite $suite
   * @since  Method available since Release 2.2.0
   */
  public function startTestSuite(PHPUnit_Framework_TestSuite $suite) {
    if ($this->topTestSuite === null) {
      $this->topTestSuite = $suite;
    }
    foreach ($this->listeners as $listener) {
      $listener
        ->startTestSuite($suite);
    }
  }

  /**
   * Informs the result that a testsuite was completed.
   *
   * @param PHPUnit_Framework_TestSuite $suite
   * @since  Method available since Release 2.2.0
   */
  public function endTestSuite(PHPUnit_Framework_TestSuite $suite) {
    foreach ($this->listeners as $listener) {
      $listener
        ->endTestSuite($suite);
    }
  }

  /**
   * Informs the result that a test will be started.
   *
   * @param PHPUnit_Framework_Test $test
   */
  public function startTest(PHPUnit_Framework_Test $test) {
    $this->lastTestFailed = false;
    $this->runTests += count($test);
    foreach ($this->listeners as $listener) {
      $listener
        ->startTest($test);
    }
  }

  /**
   * Informs the result that a test was completed.
   *
   * @param PHPUnit_Framework_Test $test
   * @param float                  $time
   */
  public function endTest(PHPUnit_Framework_Test $test, $time) {
    foreach ($this->listeners as $listener) {
      $listener
        ->endTest($test, $time);
    }
    if (!$this->lastTestFailed && $test instanceof PHPUnit_Framework_TestCase) {
      $class = get_class($test);
      $key = $class . '::' . $test
        ->getName();
      $this->passed[$key] = array(
        'result' => $test
          ->getResult(),
        'size' => PHPUnit_Util_Test::getSize($class, $test
          ->getName(false)),
      );
      $this->time += $time;
    }
  }

  /**
   * Returns true if no risky test occurred.
   *
   * @return bool
   * @since  Method available since Release 4.0.0
   */
  public function allHarmless() {
    return $this
      ->riskyCount() == 0;
  }

  /**
   * Gets the number of risky tests.
   *
   * @return int
   * @since  Method available since Release 4.0.0
   */
  public function riskyCount() {
    return count($this->risky);
  }

  /**
   * Returns true if no incomplete test occurred.
   *
   * @return bool
   */
  public function allCompletelyImplemented() {
    return $this
      ->notImplementedCount() == 0;
  }

  /**
   * Gets the number of incomplete tests.
   *
   * @return int
   */
  public function notImplementedCount() {
    return count($this->notImplemented);
  }

  /**
   * Returns an Enumeration for the risky tests.
   *
   * @return array
   * @since  Method available since Release 4.0.0
   */
  public function risky() {
    return $this->risky;
  }

  /**
   * Returns an Enumeration for the incomplete tests.
   *
   * @return array
   */
  public function notImplemented() {
    return $this->notImplemented;
  }

  /**
   * Returns true if no test has been skipped.
   *
   * @return bool
   * @since  Method available since Release 3.0.0
   */
  public function noneSkipped() {
    return $this
      ->skippedCount() == 0;
  }

  /**
   * Gets the number of skipped tests.
   *
   * @return int
   * @since  Method available since Release 3.0.0
   */
  public function skippedCount() {
    return count($this->skipped);
  }

  /**
   * Returns an Enumeration for the skipped tests.
   *
   * @return array
   * @since  Method available since Release 3.0.0
   */
  public function skipped() {
    return $this->skipped;
  }

  /**
   * Gets the number of detected errors.
   *
   * @return int
   */
  public function errorCount() {
    return count($this->errors);
  }

  /**
   * Returns an Enumeration for the errors.
   *
   * @return array
   */
  public function errors() {
    return $this->errors;
  }

  /**
   * Gets the number of detected failures.
   *
   * @return int
   */
  public function failureCount() {
    return count($this->failures);
  }

  /**
   * Returns an Enumeration for the failures.
   *
   * @return array
   */
  public function failures() {
    return $this->failures;
  }

  /**
   * Returns the names of the tests that have passed.
   *
   * @return array
   * @since  Method available since Release 3.4.0
   */
  public function passed() {
    return $this->passed;
  }

  /**
   * Returns the (top) test suite.
   *
   * @return PHPUnit_Framework_TestSuite
   * @since  Method available since Release 3.0.0
   */
  public function topTestSuite() {
    return $this->topTestSuite;
  }

  /**
   * Returns whether code coverage information should be collected.
   *
   * @return bool If code coverage should be collected
   * @since  Method available since Release 3.2.0
   */
  public function getCollectCodeCoverageInformation() {
    return $this->codeCoverage !== null;
  }

  /**
   * Runs a TestCase.
   *
   * @param PHPUnit_Framework_Test $test
   */
  public function run(PHPUnit_Framework_Test $test) {
    PHPUnit_Framework_Assert::resetCount();
    $error = false;
    $failure = false;
    $incomplete = false;
    $risky = false;
    $skipped = false;
    $this
      ->startTest($test);
    $errorHandlerSet = false;
    if ($this->convertErrorsToExceptions) {
      $oldErrorHandler = set_error_handler(array(
        'PHPUnit_Util_ErrorHandler',
        'handleError',
      ), E_ALL | E_STRICT);
      if ($oldErrorHandler === null) {
        $errorHandlerSet = true;
      }
      else {
        restore_error_handler();
      }
    }
    $collectCodeCoverage = $this->codeCoverage !== null && !$test instanceof PHPUnit_Extensions_SeleniumTestCase && !$test instanceof PHPUnit_Framework_Warning;
    if ($collectCodeCoverage) {

      // We need to blacklist test source files when no whitelist is used.
      if (!$this->codeCoverage
        ->filter()
        ->hasWhitelist()) {
        $classes = $this
          ->getHierarchy(get_class($test), true);
        foreach ($classes as $class) {
          $this->codeCoverage
            ->filter()
            ->addFileToBlacklist($class
            ->getFileName());
        }
      }
      $this->codeCoverage
        ->start($test);
    }
    PHP_Timer::start();
    try {
      if (!$test instanceof PHPUnit_Framework_Warning && $test
        ->getSize() != PHPUnit_Util_Test::UNKNOWN && $this->beStrictAboutTestSize && extension_loaded('pcntl') && class_exists('PHP_Invoker')) {
        switch ($test
          ->getSize()) {
          case PHPUnit_Util_Test::SMALL:
            $_timeout = $this->timeoutForSmallTests;
            break;
          case PHPUnit_Util_Test::MEDIUM:
            $_timeout = $this->timeoutForMediumTests;
            break;
          case PHPUnit_Util_Test::LARGE:
            $_timeout = $this->timeoutForLargeTests;
            break;
        }
        $invoker = new PHP_Invoker();
        $invoker
          ->invoke(array(
          $test,
          'runBare',
        ), array(), $_timeout);
      }
      else {
        $test
          ->runBare();
      }
    } catch (PHPUnit_Framework_AssertionFailedError $e) {
      $failure = true;
      if ($e instanceof PHPUnit_Framework_RiskyTestError) {
        $risky = true;
      }
      elseif ($e instanceof PHPUnit_Framework_IncompleteTestError) {
        $incomplete = true;
      }
      elseif ($e instanceof PHPUnit_Framework_SkippedTestError) {
        $skipped = true;
      }
    } catch (PHPUnit_Framework_Exception $e) {
      $error = true;
    } catch (Throwable $e) {
      $e = new PHPUnit_Framework_ExceptionWrapper($e);
      $error = true;
    } catch (Exception $e) {
      $e = new PHPUnit_Framework_ExceptionWrapper($e);
      $error = true;
    }
    $time = PHP_Timer::stop();
    $test
      ->addToAssertionCount(PHPUnit_Framework_Assert::getCount());
    if ($this->beStrictAboutTestsThatDoNotTestAnything && $test
      ->getNumAssertions() == 0) {
      $risky = true;
    }
    if ($collectCodeCoverage) {
      $append = !$risky && !$incomplete && !$skipped;
      $linesToBeCovered = array();
      $linesToBeUsed = array();
      if ($append && $test instanceof PHPUnit_Framework_TestCase) {
        $linesToBeCovered = PHPUnit_Util_Test::getLinesToBeCovered(get_class($test), $test
          ->getName(false));
        $linesToBeUsed = PHPUnit_Util_Test::getLinesToBeUsed(get_class($test), $test
          ->getName(false));
      }
      try {
        $this->codeCoverage
          ->stop($append, $linesToBeCovered, $linesToBeUsed);
      } catch (PHP_CodeCoverage_Exception_UnintentionallyCoveredCode $cce) {
        $this
          ->addFailure($test, new PHPUnit_Framework_UnintentionallyCoveredCodeError('This test executed code that is not listed as code to be covered or used:' . PHP_EOL . $cce
          ->getMessage()), $time);
      } catch (PHPUnit_Framework_InvalidCoversTargetException $cce) {
        $this
          ->addFailure($test, new PHPUnit_Framework_InvalidCoversTargetError($cce
          ->getMessage()), $time);
      } catch (PHP_CodeCoverage_Exception $cce) {
        $error = true;
        if (!isset($e)) {
          $e = $cce;
        }
      }
    }
    if ($errorHandlerSet === true) {
      restore_error_handler();
    }
    if ($error === true) {
      $this
        ->addError($test, $e, $time);
    }
    elseif ($failure === true) {
      $this
        ->addFailure($test, $e, $time);
    }
    elseif ($this->beStrictAboutTestsThatDoNotTestAnything && $test
      ->getNumAssertions() == 0) {
      $this
        ->addFailure($test, new PHPUnit_Framework_RiskyTestError('This test did not perform any assertions'), $time);
    }
    elseif ($this->beStrictAboutOutputDuringTests && $test
      ->hasOutput()) {
      $this
        ->addFailure($test, new PHPUnit_Framework_OutputError(sprintf('This test printed output: %s', $test
        ->getActualOutput())), $time);
    }
    elseif ($this->beStrictAboutTodoAnnotatedTests && $test instanceof PHPUnit_Framework_TestCase) {
      $annotations = $test
        ->getAnnotations();
      if (isset($annotations['method']['todo'])) {
        $this
          ->addFailure($test, new PHPUnit_Framework_RiskyTestError('Test method is annotated with @todo'), $time);
      }
    }
    $this
      ->endTest($test, $time);
  }

  /**
   * Gets the number of run tests.
   *
   * @return int
   */
  public function count() {
    return $this->runTests;
  }

  /**
   * Checks whether the test run should stop.
   *
   * @return bool
   */
  public function shouldStop() {
    return $this->stop;
  }

  /**
   * Marks that the test run should stop.
   */
  public function stop() {
    $this->stop = true;
  }

  /**
   * Returns the PHP_CodeCoverage object.
   *
   * @return PHP_CodeCoverage
   * @since  Method available since Release 3.5.0
   */
  public function getCodeCoverage() {
    return $this->codeCoverage;
  }

  /**
   * Sets the PHP_CodeCoverage object.
   *
   * @param PHP_CodeCoverage $codeCoverage
   * @since Method available since Release 3.6.0
   */
  public function setCodeCoverage(PHP_CodeCoverage $codeCoverage) {
    $this->codeCoverage = $codeCoverage;
  }

  /**
   * Enables or disables the error-to-exception conversion.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.2.14
   */
  public function convertErrorsToExceptions($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->convertErrorsToExceptions = $flag;
  }

  /**
   * Returns the error-to-exception conversion setting.
   *
   * @return bool
   * @since  Method available since Release 3.4.0
   */
  public function getConvertErrorsToExceptions() {
    return $this->convertErrorsToExceptions;
  }

  /**
   * Enables or disables the stopping when an error occurs.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.5.0
   */
  public function stopOnError($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->stopOnError = $flag;
  }

  /**
   * Enables or disables the stopping when a failure occurs.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.1.0
   */
  public function stopOnFailure($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->stopOnFailure = $flag;
  }

  /**
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 4.0.0
   */
  public function beStrictAboutTestsThatDoNotTestAnything($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->beStrictAboutTestsThatDoNotTestAnything = $flag;
  }

  /**
   * @return bool
   * @since  Method available since Release 4.0.0
   */
  public function isStrictAboutTestsThatDoNotTestAnything() {
    return $this->beStrictAboutTestsThatDoNotTestAnything;
  }

  /**
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 4.0.0
   */
  public function beStrictAboutOutputDuringTests($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->beStrictAboutOutputDuringTests = $flag;
  }

  /**
   * @return bool
   * @since  Method available since Release 4.0.0
   */
  public function isStrictAboutOutputDuringTests() {
    return $this->beStrictAboutOutputDuringTests;
  }

  /**
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 4.0.0
   */
  public function beStrictAboutTestSize($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->beStrictAboutTestSize = $flag;
  }

  /**
   * @return bool
   * @since  Method available since Release 4.0.0
   */
  public function isStrictAboutTestSize() {
    return $this->beStrictAboutTestSize;
  }

  /**
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 4.2.0
   */
  public function beStrictAboutTodoAnnotatedTests($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->beStrictAboutTodoAnnotatedTests = $flag;
  }

  /**
   * @return bool
   * @since  Method available since Release 4.2.0
   */
  public function isStrictAboutTodoAnnotatedTests() {
    return $this->beStrictAboutTodoAnnotatedTests;
  }

  /**
   * Enables or disables the stopping for risky tests.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 4.0.0
   */
  public function stopOnRisky($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->stopOnRisky = $flag;
  }

  /**
   * Enables or disables the stopping for incomplete tests.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.5.0
   */
  public function stopOnIncomplete($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->stopOnIncomplete = $flag;
  }

  /**
   * Enables or disables the stopping for skipped tests.
   *
   * @param  bool                        $flag
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.1.0
   */
  public function stopOnSkipped($flag) {
    if (!is_bool($flag)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
    }
    $this->stopOnSkipped = $flag;
  }

  /**
   * Returns the time spent running the tests.
   *
   * @return float
   */
  public function time() {
    return $this->time;
  }

  /**
   * Returns whether the entire test was successful or not.
   *
   * @return bool
   */
  public function wasSuccessful() {
    return empty($this->errors) && empty($this->failures);
  }

  /**
   * Sets the timeout for small tests.
   *
   * @param  int                         $timeout
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.6.0
   */
  public function setTimeoutForSmallTests($timeout) {
    if (!is_integer($timeout)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
    }
    $this->timeoutForSmallTests = $timeout;
  }

  /**
   * Sets the timeout for medium tests.
   *
   * @param  int                         $timeout
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.6.0
   */
  public function setTimeoutForMediumTests($timeout) {
    if (!is_integer($timeout)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
    }
    $this->timeoutForMediumTests = $timeout;
  }

  /**
   * Sets the timeout for large tests.
   *
   * @param  int                         $timeout
   * @throws PHPUnit_Framework_Exception
   * @since  Method available since Release 3.6.0
   */
  public function setTimeoutForLargeTests($timeout) {
    if (!is_integer($timeout)) {
      throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
    }
    $this->timeoutForLargeTests = $timeout;
  }

  /**
   * Returns the class hierarchy for a given class.
   *
   * @param  string $className
   * @param  bool   $asReflectionObjects
   * @return array
   */
  protected function getHierarchy($className, $asReflectionObjects = false) {
    if ($asReflectionObjects) {
      $classes = array(
        new ReflectionClass($className),
      );
    }
    else {
      $classes = array(
        $className,
      );
    }
    $done = false;
    while (!$done) {
      if ($asReflectionObjects) {
        $class = new ReflectionClass($classes[count($classes) - 1]
          ->getName());
      }
      else {
        $class = new ReflectionClass($classes[count($classes) - 1]);
      }
      $parent = $class
        ->getParentClass();
      if ($parent !== false) {
        if ($asReflectionObjects) {
          $classes[] = $parent;
        }
        else {
          $classes[] = $parent
            ->getName();
        }
      }
      else {
        $done = true;
      }
    }
    return $classes;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHPUnit_Framework_TestResult::$beStrictAboutOutputDuringTests protected property
PHPUnit_Framework_TestResult::$beStrictAboutTestSize protected property
PHPUnit_Framework_TestResult::$beStrictAboutTestsThatDoNotTestAnything protected property
PHPUnit_Framework_TestResult::$beStrictAboutTodoAnnotatedTests protected property
PHPUnit_Framework_TestResult::$codeCoverage protected property Code Coverage information.
PHPUnit_Framework_TestResult::$convertErrorsToExceptions protected property
PHPUnit_Framework_TestResult::$errors protected property
PHPUnit_Framework_TestResult::$failures protected property
PHPUnit_Framework_TestResult::$lastTestFailed protected property
PHPUnit_Framework_TestResult::$listeners protected property
PHPUnit_Framework_TestResult::$notImplemented protected property
PHPUnit_Framework_TestResult::$passed protected property
PHPUnit_Framework_TestResult::$risky protected property
PHPUnit_Framework_TestResult::$runTests protected property
PHPUnit_Framework_TestResult::$skipped protected property
PHPUnit_Framework_TestResult::$stop protected property
PHPUnit_Framework_TestResult::$stopOnError protected property
PHPUnit_Framework_TestResult::$stopOnFailure protected property
PHPUnit_Framework_TestResult::$stopOnIncomplete protected property
PHPUnit_Framework_TestResult::$stopOnRisky protected property
PHPUnit_Framework_TestResult::$stopOnSkipped protected property
PHPUnit_Framework_TestResult::$time protected property
PHPUnit_Framework_TestResult::$timeoutForLargeTests protected property
PHPUnit_Framework_TestResult::$timeoutForMediumTests protected property
PHPUnit_Framework_TestResult::$timeoutForSmallTests protected property
PHPUnit_Framework_TestResult::$topTestSuite protected property
PHPUnit_Framework_TestResult::addError public function Adds an error to the list of errors.
PHPUnit_Framework_TestResult::addFailure public function Adds a failure to the list of failures. The passed in exception caused the failure.
PHPUnit_Framework_TestResult::addListener public function Registers a TestListener.
PHPUnit_Framework_TestResult::allCompletelyImplemented public function Returns true if no incomplete test occurred.
PHPUnit_Framework_TestResult::allHarmless public function Returns true if no risky test occurred.
PHPUnit_Framework_TestResult::beStrictAboutOutputDuringTests public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::beStrictAboutTestSize public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::beStrictAboutTestsThatDoNotTestAnything public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::beStrictAboutTodoAnnotatedTests public function @since Method available since Release 4.2.0
PHPUnit_Framework_TestResult::convertErrorsToExceptions public function Enables or disables the error-to-exception conversion.
PHPUnit_Framework_TestResult::count public function Gets the number of run tests.
PHPUnit_Framework_TestResult::endTest public function Informs the result that a test was completed.
PHPUnit_Framework_TestResult::endTestSuite public function Informs the result that a testsuite was completed.
PHPUnit_Framework_TestResult::errorCount public function Gets the number of detected errors.
PHPUnit_Framework_TestResult::errors public function Returns an Enumeration for the errors.
PHPUnit_Framework_TestResult::failureCount public function Gets the number of detected failures.
PHPUnit_Framework_TestResult::failures public function Returns an Enumeration for the failures.
PHPUnit_Framework_TestResult::flushListeners public function Flushes all flushable TestListeners.
PHPUnit_Framework_TestResult::getCodeCoverage public function Returns the PHP_CodeCoverage object.
PHPUnit_Framework_TestResult::getCollectCodeCoverageInformation public function Returns whether code coverage information should be collected.
PHPUnit_Framework_TestResult::getConvertErrorsToExceptions public function Returns the error-to-exception conversion setting.
PHPUnit_Framework_TestResult::getHierarchy protected function Returns the class hierarchy for a given class.
PHPUnit_Framework_TestResult::isStrictAboutOutputDuringTests public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::isStrictAboutTestSize public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::isStrictAboutTestsThatDoNotTestAnything public function @since Method available since Release 4.0.0
PHPUnit_Framework_TestResult::isStrictAboutTodoAnnotatedTests public function @since Method available since Release 4.2.0
PHPUnit_Framework_TestResult::noneSkipped public function Returns true if no test has been skipped.
PHPUnit_Framework_TestResult::notImplemented public function Returns an Enumeration for the incomplete tests.
PHPUnit_Framework_TestResult::notImplementedCount public function Gets the number of incomplete tests.
PHPUnit_Framework_TestResult::passed public function Returns the names of the tests that have passed.
PHPUnit_Framework_TestResult::removeListener public function Unregisters a TestListener.
PHPUnit_Framework_TestResult::risky public function Returns an Enumeration for the risky tests.
PHPUnit_Framework_TestResult::riskyCount public function Gets the number of risky tests.
PHPUnit_Framework_TestResult::run public function Runs a TestCase.
PHPUnit_Framework_TestResult::setCodeCoverage public function Sets the PHP_CodeCoverage object.
PHPUnit_Framework_TestResult::setTimeoutForLargeTests public function Sets the timeout for large tests.
PHPUnit_Framework_TestResult::setTimeoutForMediumTests public function Sets the timeout for medium tests.
PHPUnit_Framework_TestResult::setTimeoutForSmallTests public function Sets the timeout for small tests.
PHPUnit_Framework_TestResult::shouldStop public function Checks whether the test run should stop.
PHPUnit_Framework_TestResult::skipped public function Returns an Enumeration for the skipped tests.
PHPUnit_Framework_TestResult::skippedCount public function Gets the number of skipped tests.
PHPUnit_Framework_TestResult::startTest public function Informs the result that a test will be started.
PHPUnit_Framework_TestResult::startTestSuite public function Informs the result that a testsuite will be started.
PHPUnit_Framework_TestResult::stop public function Marks that the test run should stop.
PHPUnit_Framework_TestResult::stopOnError public function Enables or disables the stopping when an error occurs.
PHPUnit_Framework_TestResult::stopOnFailure public function Enables or disables the stopping when a failure occurs.
PHPUnit_Framework_TestResult::stopOnIncomplete public function Enables or disables the stopping for incomplete tests.
PHPUnit_Framework_TestResult::stopOnRisky public function Enables or disables the stopping for risky tests.
PHPUnit_Framework_TestResult::stopOnSkipped public function Enables or disables the stopping for skipped tests.
PHPUnit_Framework_TestResult::time public function Returns the time spent running the tests.
PHPUnit_Framework_TestResult::topTestSuite public function Returns the (top) test suite.
PHPUnit_Framework_TestResult::wasSuccessful public function Returns whether the entire test was successful or not.