【发布时间】:2014-10-30 05:29:54
【问题描述】:
我正在使用 Phpunit。如果我只是运行我的测试:
phpunit --log-junit output.xml
这会在一秒钟内运行。但如果我想要代码覆盖率:
phpunit --coverage-html ./report --log-junit output.xml
然后它非常慢,phpunit 发送“从 *.xml 读取配置”并挂起一分钟,然后它开始执行测试
【问题讨论】:
-
构建代码覆盖率数据会变慢,这是什么问题?您只在需要时构建代码覆盖率报告
-
我知道调试会使它变慢。但它要慢 10000000 倍...
-
我认为这可能是 xDebug 速度慢的问题,而不是 PHPUnit 的问题。
xdebug_start_code_coverage()函数 is called 带有XDEBUG_CC_DEAD_CODE和XDEBUG_CC_UNUSED选项,以及 "Enabling those options make code coverage drastically slower." -
@J.D.把钉子钉在头上。我目前正在开发一个补丁,它可以让这个速度提高 10 倍。您可以在此处跟踪进度。 github.com/sebastianbergmann/php-code-coverage/pull/387 这将被合并到 php 代码覆盖的 3.0 版本中(支持 php >=5.6)。我也可能会 fork 这个版本并使其与 php5.5 兼容