function TestSuiteLoader::load
Throws
File
-
vendor/
phpunit/ phpunit/ src/ Runner/ TestSuiteLoader.php, line 44
Class
- TestSuiteLoader
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\RunnerCode
public function load(string $suiteClassFile) : ReflectionClass {
$suiteClassFile = realpath($suiteClassFile);
$suiteClassName = $this->classNameFromFileName($suiteClassFile);
$loadedClasses = $this->loadSuiteClassFile($suiteClassFile);
foreach ($loadedClasses as $className) {
/** @noinspection PhpUnhandledExceptionInspection */
$class = new ReflectionClass($className);
if ($class->isAnonymous()) {
continue;
}
if ($class->getFileName() !== $suiteClassFile) {
continue;
}
if (!$class->isSubclassOf(TestCase::class)) {
continue;
}
if (!str_ends_with(strtolower($class->getShortName()), strtolower($suiteClassName))) {
continue;
}
if (!$class->isAbstract()) {
return $class;
}
$e = new ClassIsAbstractException($class->getName(), $suiteClassFile);
}
if (isset($e)) {
throw $e;
}
foreach ($loadedClasses as $className) {
if (str_ends_with(strtolower($className), strtolower($suiteClassName))) {
throw new ClassDoesNotExtendTestCaseException($className, $suiteClassFile);
}
}
throw new ClassCannotBeFoundException($suiteClassName, $suiteClassFile);
}