| Server IP : / Your IP : 10.244.4.16 [ Web Server : nginx/1.25.3 System : Linux escuela-portal-app-54f56585bc-kst6g 5.15.0-1084-azure #93-Ubuntu SMP Sat Mar 15 14:12:29 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.13 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /proc/1443/cwd/app/vendor/phpunit/phpunit/src/Runner/ |
Upload File : |
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Runner;
use function array_diff;
use function array_values;
use function basename;
use function class_exists;
use function get_declared_classes;
use function sprintf;
use function stripos;
use function strlen;
use function substr;
use PHPUnit\Framework\TestCase;
use PHPUnit\Util\FileLoader;
use ReflectionClass;
use ReflectionException;
/**
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*
* @deprecated see https://github.com/sebastianbergmann/phpunit/issues/4039
*/
final class StandardTestSuiteLoader implements TestSuiteLoader
{
/**
* @throws Exception
*/
public function load(string $suiteClassFile): ReflectionClass
{
$suiteClassName = basename($suiteClassFile, '.php');
$loadedClasses = get_declared_classes();
if (!class_exists($suiteClassName, false)) {
/* @noinspection UnusedFunctionResultInspection */
FileLoader::checkAndLoad($suiteClassFile);
$loadedClasses = array_values(
array_diff(get_declared_classes(), $loadedClasses),
);
if (empty($loadedClasses)) {
throw new Exception(
sprintf(
'Class %s could not be found in %s',
$suiteClassName,
$suiteClassFile,
),
);
}
}
if (!class_exists($suiteClassName, false)) {
$offset = 0 - strlen($suiteClassName);
foreach ($loadedClasses as $loadedClass) {
// @see https://github.com/sebastianbergmann/phpunit/issues/5020
if (stripos(substr($loadedClass, $offset - 1), '\\' . $suiteClassName) === 0 ||
stripos(substr($loadedClass, $offset - 1), '_' . $suiteClassName) === 0) {
$suiteClassName = $loadedClass;
break;
}
}
}
if (!class_exists($suiteClassName, false)) {
throw new Exception(
sprintf(
'Class %s could not be found in %s',
$suiteClassName,
$suiteClassFile,
),
);
}
try {
$class = new ReflectionClass($suiteClassName);
// @codeCoverageIgnoreStart
} catch (ReflectionException $e) {
throw new Exception(
$e->getMessage(),
$e->getCode(),
$e,
);
}
// @codeCoverageIgnoreEnd
if ($class->isSubclassOf(TestCase::class)) {
if ($class->isAbstract()) {
throw new Exception(
sprintf(
'Class %s declared in %s is abstract',
$suiteClassName,
$suiteClassFile,
),
);
}
return $class;
}
if ($class->hasMethod('suite')) {
try {
$method = $class->getMethod('suite');
// @codeCoverageIgnoreStart
} catch (ReflectionException $e) {
throw new Exception(
sprintf(
'Method %s::suite() declared in %s is abstract',
$suiteClassName,
$suiteClassFile,
),
);
}
if (!$method->isPublic()) {
throw new Exception(
sprintf(
'Method %s::suite() declared in %s is not public',
$suiteClassName,
$suiteClassFile,
),
);
}
if (!$method->isStatic()) {
throw new Exception(
sprintf(
'Method %s::suite() declared in %s is not static',
$suiteClassName,
$suiteClassFile,
),
);
}
}
return $class;
}
public function reload(ReflectionClass $aClass): ReflectionClass
{
return $aClass;
}
}