![](/img/trans.png)
[英]No such file or directory in ...vendor/composer/ClassLoader.php:444 (Laravel)
[英]Must PHPUnit require Composer\Autoload\ClassLoader.php?
尝试集成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?
按照kuba的建议,我将自动加载更改为:
require __DIR__ . "\\$className.php";
新错误:
致命错误:require():无法打开所需的'C:\\ project-root \\ Composer \\ Autoload \\ ClassLoader.php'
当PHP尝试加载Composer\\Autoload\\ClassLoader.php
时,我需要调整自动加载器以使其不执行任何操作。 所以我将自动装带器从:
function my_autoload($className){
require __DIR__ . "\\$className.php";
}
至
function my_autoload($className){
$path = __DIR__ . "\\$className.php";
if (file_exists($path)) require $path;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.