PHPUnit 找不到我的类,但 composer.json 中的自动加载看起来不错

Posted

技术标签:

【中文标题】PHPUnit 找不到我的类,但 composer.json 中的自动加载看起来不错【英文标题】:PHPUnit can't find my classes but autoload in composer.json looks fine 【发布时间】:2021-04-20 04:17:18 【问题描述】:

我的 composer.json 中有以下内容:

"autoload": 
    "psr-4": 
        "Athena\\Core\\": "core",
        "Athena\\Tests\\": "tests",
    

我有这个目录结构:

core/
    Framework/
        Console/
            Commands/
                AbstractCommand.php
tests/
    Console/
        Commands/
            AbstractCommandTest.php

在 PHPStorm 中运行测试时,我得到: 错误:找不到类 'Athena\Core\Framework\Console\Commands\AbstractCommand'

我想也许 vendor/autoload.php 没有被加载,但如果我尝试运行 phpunit tests --bootstrap vendor/autoload.php,我会收到错误消息说不能声明已经声明的东西,所以很明显它已经加载了。

发生了什么事? :S

【问题讨论】:

【参考方案1】:

事实证明,当运行全局安装的 phpunit 时,它会从 composers 安装位置加载供应商/自动加载,而不是项目。因此它无法加载任何项目类文件。

【讨论】:

以上是关于PHPUnit 找不到我的类,但 composer.json 中的自动加载看起来不错的主要内容,如果未能解决你的问题,请参考以下文章

PHP 致命错误:找不到类 - PHPUnit

PHPUnit 找不到类

尝试放置单独的类和测试文件夹时,在测试期间找不到 PHPUnit 错误类

PHPUnit 自动加载器错误:找不到类“Yii”

PhpStorm 2016.3.3 找不到 PHPUnit 6.0 的测试类。*

PHPUnit错误:找不到类