我目前正在使用Zend Framework与PHPUnit一起对应用程序进行单元测试.当Hudson执行PHPUnit shell命令时,在代码覆盖生成期间的某个时间达到最大PHP内存限制.我目前总共有41个测试,有334个断言.
通过使用-d memory_limit=768M
开关将memory_limit设置提高到768M,我成功地消除了这个错误; 但是,我担心随着复杂性的增加以及测试/断言的总数,我将没有足够的内存来生成用于代码覆盖率统计的HTML.
操作系统: CentOS 5.5
控制面板: WHM/cPanel
CI服务器: Hudson
/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 Framework被包含在代码覆盖范围内,代码覆盖范围非常大.