尝试集成PHPUnit和我的IDE(PhpStorm 2017.2(。 我直接执行phpunit.phar
文件(版本 5.7.21(,因为我不使用 Composer 并且没有安装它。
phpunit.xml
<phpunit bootstrap="phpunit-bootstrap.php">
<testsuites>
<testsuite name="Test suite">
<directory>./</directory>
</testsuite>
</testsuites>
</phpunit>
phpunit-bootstrap.php
spl_autoload_register('my_autoload');
/**
* @param string $className Fully qualified name to autoload
*/
function my_autoload($className){
require $_SERVER['DOCUMENT_ROOT'] . "\$className.php";
}
当我执行项目文件时,此自动加载器工作正常。但是,当我尝试运行任何 PHPUnit 测试时,我看到此错误:
致命错误:require((:打开失败需要"\Composer\Autoload\ClassLoader.php">
如果我删除自动加载,那么我的项目类就再也找不到了(相同的错误,不同的类名(。
PHPUnit 是否依赖于全局安装并在系统路径上可用的 Composer?
更新 1
按照 kuba 在评论中的建议,我将自动加载更改为:
require __DIR__ . "\$className.php";
新错误:
致命错误:require((:需要打开失败"C:\project-root\Composer\Autoload\ClassLoader.php
我需要调整我的自动加载器,以便在 PHP 尝试加载ComposerAutoloadClassLoader.php
时不执行任何操作。所以我把我的自动加载机从:
function my_autoload($className){
require __DIR__ . "\$className.php";
}
自
function my_autoload($className){
$path = __DIR__ . "\$className.php";
if (file_exists($path)) require $path;
}