我有一台32 for的机器,并使用phpdbg进行代码覆盖,运行了2000多个测试用例。
phpdbg -qrr -d memory_limit=-1./vendor/phpunit/phpunit/phpunit --debug --verbose运行一段时间后,即使memory_limit是-1,它也会引发以下错误
map()失败: 12不能分配内存PHP致命错误:内存不足(分配5830606848) (尝试分配65536字节)
发布于 2017-09-02 18:27:51
你很可能是在漏掉内存,而没有把它清理干净。有些插件将报告每个测试使用多少内存,还有一些插件将尝试自动清理--尽管在更新PHPunit v6+时,一些插件可能需要注意使用名称空间testcase类。
一种试图释放内存的方法是“mybuilder/phpunit-加速器”,但是如果您能够找到内存特别多的测试类,则可以手动删除teardown()函数中使用的变量。
确保您只为自己的代码(src/,也许是test/)收集覆盖率数据也会节省大量的内存(和时间)--但请将'src/‘目录白名单,不要试图将’供应商/‘列入黑名单/。
https://stackoverflow.com/questions/46001411
复制相似问题