【发布时间】:2018-01-04 00:20:35
【问题描述】:
尝试集成 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 在 cmets 中的建议,我将自动加载更改为:
require __DIR__ . "\\$className.php";
新错误:
致命错误:require(): 无法打开所需的 'C:\project-root\Composer\Autoload\ClassLoader.php'
【问题讨论】:
-
当您从控制台运行
phpunit.phar时$_SERVER['DOCUMENT_ROOT']为空,您是否尝试将其更改为__DIR__或类似的东西? -
@kuba 你是对的 DOC_ROOT 是空的。我改成
__DIR__;不过类似的错误(更新的 OP)
标签: php phpunit composer-php