You are here

abstract class PHPUnit_Runner_BaseTestRunner in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php \PHPUnit_Runner_BaseTestRunner

Base class for all test runners.

@since Class available since Release 2.0.0

Hierarchy

Expanded class hierarchy of PHPUnit_Runner_BaseTestRunner

File

vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php, line 16

View source
abstract class PHPUnit_Runner_BaseTestRunner {
  const STATUS_PASSED = 0;
  const STATUS_SKIPPED = 1;
  const STATUS_INCOMPLETE = 2;
  const STATUS_FAILURE = 3;
  const STATUS_ERROR = 4;
  const STATUS_RISKY = 5;
  const SUITE_METHODNAME = 'suite';

  /**
   * Returns the loader to be used.
   *
   * @return PHPUnit_Runner_TestSuiteLoader
   */
  public function getLoader() {
    return new PHPUnit_Runner_StandardTestSuiteLoader();
  }

  /**
   * Returns the Test corresponding to the given suite.
   * This is a template method, subclasses override
   * the runFailed() and clearStatus() methods.
   *
   * @param  string                 $suiteClassName
   * @param  string                 $suiteClassFile
   * @param  mixed                  $suffixes
   * @return PHPUnit_Framework_Test
   */
  public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '') {
    if (is_dir($suiteClassName) && !is_file($suiteClassName . '.php') && empty($suiteClassFile)) {
      $facade = new File_Iterator_Facade();
      $files = $facade
        ->getFilesAsArray($suiteClassName, $suffixes);
      $suite = new PHPUnit_Framework_TestSuite($suiteClassName);
      $suite
        ->addTestFiles($files);
      return $suite;
    }
    try {
      $testClass = $this
        ->loadSuiteClass($suiteClassName, $suiteClassFile);
    } catch (PHPUnit_Framework_Exception $e) {
      $this
        ->runFailed($e
        ->getMessage());
      return;
    }
    try {
      $suiteMethod = $testClass
        ->getMethod(self::SUITE_METHODNAME);
      if (!$suiteMethod
        ->isStatic()) {
        $this
          ->runFailed('suite() method must be static.');
        return;
      }
      try {
        $test = $suiteMethod
          ->invoke(null, $testClass
          ->getName());
      } catch (ReflectionException $e) {
        $this
          ->runFailed(sprintf("Failed to invoke suite() method.\n%s", $e
          ->getMessage()));
        return;
      }
    } catch (ReflectionException $e) {
      try {
        $test = new PHPUnit_Framework_TestSuite($testClass);
      } catch (PHPUnit_Framework_Exception $e) {
        $test = new PHPUnit_Framework_TestSuite();
        $test
          ->setName($suiteClassName);
      }
    }
    $this
      ->clearStatus();
    return $test;
  }

  /**
   * Returns the loaded ReflectionClass for a suite name.
   *
   * @param  string          $suiteClassName
   * @param  string          $suiteClassFile
   * @return ReflectionClass
   */
  protected function loadSuiteClass($suiteClassName, $suiteClassFile = '') {
    $loader = $this
      ->getLoader();
    return $loader
      ->load($suiteClassName, $suiteClassFile);
  }

  /**
   * Clears the status message.
   */
  protected function clearStatus() {
  }

  /**
   * Override to define how to handle a failed loading of
   * a test suite.
   *
   * @param string $message
   */
  protected abstract function runFailed($message);

}

Members

Namesort descending Modifiers Type Description Overrides
PHPUnit_Runner_BaseTestRunner::clearStatus protected function Clears the status message.
PHPUnit_Runner_BaseTestRunner::getLoader public function Returns the loader to be used. 1
PHPUnit_Runner_BaseTestRunner::getTest public function Returns the Test corresponding to the given suite. This is a template method, subclasses override the runFailed() and clearStatus() methods.
PHPUnit_Runner_BaseTestRunner::loadSuiteClass protected function Returns the loaded ReflectionClass for a suite name.
PHPUnit_Runner_BaseTestRunner::runFailed abstract protected function Override to define how to handle a failed loading of a test suite. 2
PHPUnit_Runner_BaseTestRunner::STATUS_ERROR constant
PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE constant
PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE constant
PHPUnit_Runner_BaseTestRunner::STATUS_PASSED constant
PHPUnit_Runner_BaseTestRunner::STATUS_RISKY constant
PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED constant
PHPUnit_Runner_BaseTestRunner::SUITE_METHODNAME constant