我目前正在使用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和/或包含的继承制查看器)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top