运行Laravel的Pest测试时内存耗尽,如何调整测试用例的内存限制?
Laravel Pest 测试内存耗尽问题解决方法
方法1:单次运行临时调整(快速验证用)
运行测试命令时手动指定内存限制即可,示例命令如下:
# 限制为512M php -d memory_limit=512M vendor/bin/pest # 限制为1G php -d memory_limit=1G vendor/bin/pest # 临时取消内存限制(仅调试用,不推荐长期使用) php -d memory_limit=-1 vendor/bin/pest
方法2:项目级固定配置(推荐)
Pest底层基于PHPUnit运行,直接修改项目根目录下的phpunit.xml文件,在<php>节点下新增配置即可,修改后项目内所有测试运行都会自动生效:
<php> <!-- 原有其他配置 --> <ini name="memory_limit" value="1G" /> </php>
配置完成后直接执行./vendor/bin/pest即可。
方法3:全局调整PHP CLI内存限制
如果需要对所有本地PHP命令行脚本生效,可以修改CLI对应的php.ini配置:
- 执行以下命令查看CLI加载的配置文件路径:
php --ini - 找到输出中
Loaded Configuration File对应的文件路径,编辑文件,找到memory_limit项修改为预期值:memory_limit = 1024M - 保存后重启终端即可生效。
额外排查建议
如果调整内存后仍频繁触发耗尽告警,建议排查测试用例的内存泄漏问题:
- 大量生成的模型实例是否未释放
- 全局
setUp/tearDown中是否有未清理的资源 - 是否存在未关闭的数据库连接、文件句柄等
报错截图

内容的提问来源于stack exchange,提问作者Munsheer EK
相关产品推荐
相关产品推荐

