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

Magento 2.2.3执行编译命令时出现PHPUnit类未找到错误

解决Magento 2.2.3执行php bin/magento setup:di:compile时的PHPUnit类找不到错误

这个坑我之前部署Magento 2.2.x版本时也踩过,本质是PSR Log扩展包里的测试文件被Magento的DI编译进程误扫描到,但你的环境里没装PHPUnit(或者全局PHPUnit版本不匹配、路径不对),导致找不到PHPUnit_Framework_TestCase类。下面是几个亲测有效的解决办法:

办法1:安装对应版本的PHPUnit作为开发依赖

Magento 2.2.3适配的PHPUnit版本是~6.2,直接用composer安装即可:

composer require --dev phpunit/phpunit:~6.2

安装完成后重新执行编译命令,就能正常找到测试基类了。这个办法适合需要保留测试文件的场景,比如之后要做单元测试的话。

办法2:临时移除PSR Log的测试目录

如果你的环境不需要保留测试文件,最快的解决方式就是直接删掉触发错误的测试目录:

rm -rf vendor/psr/log/Psr/Log/Test/

删除后重新执行php bin/magento setup:di:compile,编译进程就不会扫描到这个测试文件,自然也就不会触发错误了。如果之后需要恢复这个目录,重新执行composer install即可。

办法3:修改Magento的DI编译排除规则(进阶)

如果你不想删除文件也不想装PHPUnit,可以修改Magento的编译配置,让它跳过测试目录:

  • 打开app/etc/di.xml
  • 在<config>节点下添加以下配置:
<type name="Magento\Framework\Code\Generator\Io">
    <arguments>
        <argument name="excludePatterns" xsi:type="array">
            <item name="psr-log-test" xsi:type="string">/Psr/Log/Test/</item>
        </argument>
    </arguments>
</type>

保存后重新执行编译命令,就能排除测试目录的扫描了。不过这个办法需要修改核心配置文件,升级Magento时记得备份。


内容的提问来源于stack exchange,提问作者Jigar Prajapati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:01:05