我一直很高兴在我的 Ubuntu 机器上编码。这是一台拥有大量内存的强大机器。我正在研究 4 个新课程,一边编写和运行单元测试。在某些时候,我注意到,虽然单元测试完成得很好,但代码覆盖率却没有。
在消息“正在生成代码覆盖率报告...等...”之后,我会收到一条消息说 zend_mm_heap 已损坏。我尝试了一些修复,包括:设置output_buffering = On
在我的 php.ini (apache2 和 cli)中,并删除对unset()
从我的代码中。 (我读过,所以可能需要这些修复)。
现在,无论我做什么,我似乎都会在 zend_mm... 错误和分段错误(核心转储)错误之间交替。我注释掉测试,直到缩小我认为导致问题的范围,并在那里进行一些更改,直到我得到干净的运行。然后我取消所有测试的注释,结果发现该错误仍然发生。
有任何想法吗?我可以使用什么工具或方法来收集更多信息?
我正在使用 PHP_CodeCoverage 1.2.6、PHP 5.3.10-1ubuntu3.5、PHPUnit 3.7.9。
EDIT:
顺便说一句,我找不到任何核心转储文件。从我的两个物理磁盘的根目录进行搜索,但没有成功。我已阅读有关核心的 man 条目,包括核心转储未创建文件的可能原因,但我认为这些都不适用。
我最近也遇到了同样的问题。这似乎是 PHP 垃圾收集的问题。在 phpunit 运行期间禁用垃圾收集解决了我的问题。
Add:
zend.enable_gc=0
to your php.ini
文件或从命令行使用:
phpunit -d zend.enable_gc=0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)