You are here

public function PHPUnit_Runner_BaseTestRunner::getTest in Zircon Profile 8

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

Returns the Test corresponding to the given suite. This is a template method, subclasses override the runFailed() and clearStatus() methods.

Parameters

string $suiteClassName:

string $suiteClassFile:

mixed $suffixes:

Return value

PHPUnit_Framework_Test

File

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

Class

PHPUnit_Runner_BaseTestRunner
Base class for all test runners.

Code

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;
}