PHPUnit_Runner_StandardTestSuiteLoader::load PHP Method

load() public method

public load ( string $suiteClassName, string $suiteClassFile = '', boolean $syntaxCheck = FALSE ) : ReflectionClass
$suiteClassName string
$suiteClassFile string
$syntaxCheck boolean
return ReflectionClass
    public function load($suiteClassName, $suiteClassFile = '', $syntaxCheck = FALSE)
    {
        $suiteClassName = str_replace('.php', '', $suiteClassName);
        if (empty($suiteClassFile)) {
            $suiteClassFile = PHPUnit_Util_Filesystem::classNameToFilename($suiteClassName);
        }
        if (!class_exists($suiteClassName, FALSE)) {
            PHPUnit_Util_Class::collectStart();
            $filename = PHPUnit_Util_Fileloader::checkAndLoad($suiteClassFile, $syntaxCheck);
            $loadedClasses = PHPUnit_Util_Class::collectEnd();
        }
        if (!class_exists($suiteClassName, FALSE) && !empty($loadedClasses)) {
            $offset = 0 - strlen($suiteClassName);
            foreach ($loadedClasses as $loadedClass) {
                $class = new ReflectionClass($loadedClass);
                if (substr($loadedClass, $offset) === $suiteClassName && $class->getFileName() == $filename) {
                    $suiteClassName = $loadedClass;
                    break;
                }
            }
        }
        if (!class_exists($suiteClassName, FALSE) && !empty($loadedClasses)) {
            $testCaseClass = 'PHPUnit_Framework_TestCase';
            foreach ($loadedClasses as $loadedClass) {
                $class = new ReflectionClass($loadedClass);
                $classFile = $class->getFileName();
                if ($class->isSubclassOf($testCaseClass) && !$class->isAbstract()) {
                    $suiteClassName = $loadedClass;
                    $testCaseClass = $loadedClass;
                    if ($classFile == realpath($suiteClassFile)) {
                        break;
                    }
                }
                if ($class->hasMethod('suite')) {
                    $method = $class->getMethod('suite');
                    if (!$method->isAbstract() && $method->isPublic() && $method->isStatic()) {
                        $suiteClassName = $loadedClass;
                        if ($classFile == realpath($suiteClassFile)) {
                            break;
                        }
                    }
                }
            }
        }
        if (class_exists($suiteClassName, FALSE)) {
            $class = new ReflectionClass($suiteClassName);
            if ($class->getFileName() == realpath($suiteClassFile)) {
                return $class;
            }
        }
        throw new PHPUnit_Framework_Exception(sprintf('Class %s could not be found in %s.', $suiteClassName, $suiteClassFile));
    }

Usage Example

Example #1
0
 /**
  * Load a file and find the first test case / suite in that file.
  *
  * @param string $filePath
  * @param string $params
  * @return ReflectionClass
  */
 public function load($filePath, $params = '')
 {
     $file = $this->_resolveTestFile($filePath, $params);
     return parent::load('', $file);
 }
All Usage Examples Of PHPUnit_Runner_StandardTestSuiteLoader::load
PHPUnit_Runner_StandardTestSuiteLoader