Phpunit代码覆盖范围生成导致记忆耗尽
-
29-09-2019 - |
题
我目前正在使用Zend Framework与Phpunit结合使用,以在应用程序上进行单元测试。当Hudson执行Phpunit Shell命令时,在代码覆盖范围生成期间某个时候达到了最大PHP内存限制。我目前总共有41次测试,并有334个断言。
我通过使用Memory_limit设置提高到768m,成功地消除了此错误 -d memory_limit=768M
转变;但是,我担心,随着复杂性随着测试/断言的总数而增加,我将没有足够的内存来生成HTML以进行代码覆盖范围统计信息。
OS: CentOS 5.5
控制面板: WHM/CPANEL
CI服务器: 哈德森
/usr/local/bin/phpunit
--verbose
-d memory_limit=512M
--log-junit ../../build/logs/phpunit.xml
--coverage-clover ../../build/logs/coverage/clover.xml
--coverage-html ../../build/logs/coverage-html/
致命错误:允许的记忆大小为536870912字节用尽
在进行更改并让Hudson处理其余部分之前,我使用Windows 7进行开发。在W7中运行相同命令时,内存使用率永远不会超过340MB。
解决方案
通过减少代码覆盖范围中包含的文件数量,并增加了PHP的总体内存限制,我基本上能够杀死此错误。整个Zend框架都包含在非常大的代码覆盖范围内。
其他提示
您是否启用了Xdebug分析,如果是这样,请尝试禁用它。我以前遇到了这个问题,它归结于PHP的扩展(特别是Xdebug Proporing和/或包含的继承制查看器)
不隶属于 StackOverflow