You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP单元测试报错:未找到App\Common\PrintLoggerTool类

解决单元测试中Class "App\Common\PrintLoggerTool" not found的问题

针对你遇到的类找不到问题,按以下步骤排查:

  • 重新生成Composer自动加载映射
    执行命令:composer dump-autoload,很多时候修改文件或命名空间后,自动加载缓存没更新,这是最容易解决的原因。

  • 检查文件路径与大小写
    确认app/Common/PrintLoggerTool.php的路径、文件名大小写和命名空间完全匹配,Linux/macOS环境严格区分大小写,比如目录写成common或者文件名是printloggertool.php都会导致类找不到。

  • 验证目标类的命名空间声明
    打开app\Common\PrintLoggerTool.php,确认开头的命名空间是namespace App\Common;,类名是class PrintLoggerTool,没有拼写错误。

  • 检查测试文件的引入逻辑
    测试文件test\Cases\Common\PrintLoggerToolTest.php的命名空间应为namespace HyperfTest\Cases\Common;,引入类时用use App\Common\PrintLoggerTool;,确保类名和命名空间拼写无误。

  • 确认Composer自动加载配置生效
    打开composer.json,确认自动加载配置如下:

    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "HyperfTest\\": "./test/"
        }
    }
    

    再查看vendor/composer/autoload_psr4.php,里面应有'App\\' => array($vendorDir . '/../app'),和'HyperfTest\\' => array($vendorDir . '/../test'),,确认路径指向正确。

  • 确保在项目根目录执行测试
    执行phpunit或composer test时,要在项目根目录下操作,子目录执行会导致路径解析错误。

内容的提问来源于stack exchange,提问作者KouAkira Chin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:56:05