如何解决Lumen执行phpunit命令时的PHP Fatal Error问题
解决Lumen执行
phpunit时的私有构造函数调用错误 你遇到的错误是全局PHPUnit版本与Lumen项目依赖的版本不兼容导致的:新版本PHPUnit将TestSuite的构造函数改为私有,但你的Lumen项目依赖的PHPUnit版本仍在使用旧的调用逻辑,全局phpunit命令调用了不匹配的版本,触发了权限访问错误。
解决方法如下:
优先使用项目本地PHPUnit
不要直接调用全局phpunit命令,改用项目composer依赖的兼容版本执行测试:./vendor/bin/phpunit该命令会调用项目
vendor目录下安装的、与当前Lumen版本匹配的PHPUnit,从根源避免版本冲突。锁定项目PHPUnit版本
打开项目根目录的composer.json,检查require-dev中的phpunit版本是否符合当前Lumen的要求(例如Lumen 8.x对应PHPUnit 9.x,Lumen 7.x对应PHPUnit 8.x)。若版本不匹配,修改后执行:composer update --dev重新安装兼容的PHPUnit版本。
清理全局冲突版本(可选)
如果全局PHPUnit确实无使用需求,可以卸载它避免误调用:# Debian/Ubuntu系统通过apt安装的情况 sudo apt remove phpunit # Composer全局安装的情况 composer global remove phpunit/phpunit
内容的提问来源于stack exchange,提问作者Suganthi
相关产品推荐
相关产品推荐

