当前位置: 首页 > 知识库问答 >
问题:

PHPUnit必须不需要Composer\Autoload\ClassLoader。php?

燕博文
2023-03-14

试图集成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():无法打开required'\Composer\Autoload\ClassLoader。php'

如果删除自动加载,则无法再找到我的项目类(相同错误,不同的类名)。

PHPUnit是否依赖于全局安装的Composer并在系统路径上可用?

根据kuba在评论中的建议,我将自动加载更改为:

require __DIR__ . "\\$className.php";

新错误:

致命错误:require():无法打开所需的“C:\project root\Composer\Autoload\ClassLoader”。php'

共有1个答案

傅花蜂
2023-03-14

当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;
}
 类似资料:
  • 问题内容: 我已经在应用程序中构建了一些迁移类来创建所需的表,但是却不断出错。我需要运行以下命令: 只有这样,它才能再次按预期工作。我做错了什么会产生此错误,或者这是迁移的正常行为? 以下是运行迁移过程时遇到的错误: 问题答案: 好的,我想我知道您遇到的问题。 基本上,由于Composer无法看到您正在创建的迁移文件,因此您必须运行dump- autoload命令,该命令不会下载任何新内容,而是查

  • 对于命令和 如果我是对的: 如果我想从packagist向我的项目添加库,我需要使用 我有一个项目,我不想将其发布到https://packagist.org/ 我只想在我的项目中添加一些库。 在运行之前,是否必须运行? 我看了一个教程,其中他们使用命令,然后调用,这让我很困惑,因为我认为与在Packagist上发布库有关。

  • 问题内容: 我正在使用Eclipse for Java Develepers(在Windows 7上运行的Juno x64)。 我有一个项目正在尝试不再需要的jar(args4j),因此删除了依赖项。在某个时候,我的PC意外断电,从那以后,我重新启动了Eclipse。 我的项目现在有一个错误。在删除依赖项而没有任何问题之后,我在该项目上工作了一段时间。 在“项目属性”>“ Java构建路径”下,任

  • 我刚刚升级到Composer 2.0,它显然对解析类的方式做了一些修改。。。 作曲家转储-自动加载-o或别名作曲家du-o基本上在我的控制台中转储了很多行,文本如下: 位于C:/udvikling/MyProjectRoot/src/MyProjectClasses\MyProject\SubCategory\CoolClass.php中的类MyProject\SubCategory\CoolCl

  • http://localhost/test?name= 它的工作没有任何问题,没有抛出任何异常或任何其他迹象。为什么?

  • C++20概念的一个特点是,在某些情况下,您必须编写。例如,[expr.prim.req]/3中的这个示例: