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

使用Infection工具时提示func\Displayuser类不存在的问题求助

问题原因及解决办法

可能原因

  • 文件路径指定错误:使用--filter=Displayuser.php时,Infection无法定位到func目录下的目标文件,导致无法读取类定义。
  • Autoload配置未被Infection正确识别:即使PHPUnit能通过autoload找到类,Infection可能未正确加载Composer的autoload规则,或者func目录未被包含在autoload配置中。
  • Infection配置缺失:未在Infection配置文件中指定源码目录,导致工具扫描范围不包含func目录。

解决办法

  1. 修正Filter路径
    直接指定文件的相对路径:

    infection --filter=func/Displayuser.php
    

    或者使用类名作为过滤条件(注意反斜杠转义):

    infection --filter='func\Displayuser'
    
  2. 确认并更新Autoload配置
    检查composer.json中的autoload节点,确保包含func目录的PSR-4规则:

    "autoload": {
        "psr-4": {
            "func\\": "func/"
        }
    }
    

    执行命令更新autoload缓存:

    composer dump-autoload
    
  3. 配置Infection源码目录
    创建或修改infection.json.dist文件,添加源码目录配置:

    {
        "source": {
            "directories": ["func"]
        },
        "tests": {
            "directories": ["tests"] // 替换为你的测试文件实际目录
        }
    }
    

    之后直接执行infection命令(无需--filter也能扫描目标文件)。

  4. 检查文件名与类名一致性
    在Linux/macOS等大小写敏感的环境下,确保文件名大小写与类名完全匹配(比如Displayuser.php对应func\Displayuser类),避免因大小写差异导致类无法被识别。

内容的提问来源于stack exchange,提问作者arasyid tutorial

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:46:07