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 中的自动加载看起来不错的主要内容,如果未能解决你的问题,请参考以下文章
尝试放置单独的类和测试文件夹时,在测试期间找不到 PHPUnit 错误类