当前位置: 首页 > 面试题库 >

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

潘宝
2023-03-14
问题内容

我目前正在将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都包含在非常大的代码范围内。



 类似资料:
  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 我有这个函数写在科特林 但是当我为此函数创建单元测试时,它在报告上显示0覆盖率。我正在使用jacoco进行代码覆盖。你们知道如何正确地对内联功能进行单元测试吗?谢谢!

  • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如:

  • 我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为