小编典典

PHPUnit代码覆盖率生成导致内存耗尽

jenkins

我目前正在将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。


阅读 354

收藏
2020-07-25

共1个答案

小编典典

通过减少代码覆盖范围内包含的文件数量,以及增加PHP中的整体内存限制,我基本上可以消除此错误。整个Zend Framework都包含在非常大的代码范围内。

2020-07-25