3

我正在使用 PHPUnit 3.5.10,并且在尝试为 clover-coverage 生成 xml 报告时遇到问题。

使用coverage-html 导出效果很好。此外,如果我从覆盖率报告中排除足够多的文件,它将生成 clover.xml 文件。但是,当我运行我的测试套件时,我收到消息“将代码覆盖率数据写入 XML 文件,这可能需要一点时间。”,然后执行失败。每 25 次中的 1 次,我都会收到一条“分段错误”消息。

最初,我将此问题追溯到 PHP_CodeCoverage::getSummary() 函数,但是当我使用白名单限制代码覆盖率时,程序克服了这个错误。

接下来,代码覆盖率报告似乎在 PHP_Token_Stream::scan() 函数中超时。实际上,在累计处理了大约 31k 个令牌之后,该方法会简单地停止而没有错误消息。

我注意到与我放置的跟踪代码数量以及该方法将处理的令牌数量相关。所以看起来程序可能内存不足。

我创建了一个测试来加载我的一堆代码文件,并通过一个接一个地加载文件来测试 PHP_Token_Stream。这似乎按预期运行,并且不会复制出现在测试套件上下文中的错误。

关于如何输出我的三叶草覆盖率报告的任何建议?

4

1 回答 1

2

我们使用 1GB 运行大多数项目的单元测试,但我们必须将其提高到 2GB 以允许代码覆盖。尝试使用增加PHP 的内存限制

ini_set('memory_limit', '1024M');
于 2011-03-15T05:35:59.287 回答