Codeception codecoverage痛苦地缓慢

pal*_*ima 9 php code-coverage xdebug yii2 codeception

我正在使用codeception(使用codecoverage)来检查我使用Yii2框架编写的应用程序的代码覆盖率.因为我的mac上的标准php安装没有启用xcode,所以我激活了它,在我的php.ini中添加了一个zend_module行.代码覆盖现在似乎有效,但速度很慢.是的我知道激活的xdebug和coverage生成需要一些时间,但我认为这是不正常的:即使只检查对象初始化的简单单元测试也需要15分钟.

我认为它不是cpu或ram问题而不是配置问题.

我开始代码覆盖:

codeception run unit --coverage-html
Run Code Online (Sandbox Code Playgroud)

我发现的事情:无论它有多大,第一次测试总是快速运行.第二个测试要慢得多(无论测试是什么),第三个测试更慢.我该如何追踪?我想发现问题.

再说一遍:我知道codecoverage会减慢测试速度,但是15分钟的简单测试并不正常.

//编辑:大约运行的测试 15分钟,需要1秒而不启用代码覆盖.

OnI*_*IcE 2

您需要启用 xdebug 才能获得覆盖范围(您现在已经完成了!),因此禁用它不会有帮助。

运行此类分析检查时会产生巨大的开销,例如我的 Laravel 应用程序运行了约 300 个测试和约 1000 个断言。获取覆盖率报告时,运行大约需要 5 分钟,但在关闭 xdebug 且没有覆盖率的情况下,运行时间大约为 15 秒。

您也许能够通过配置 php.ini 获得更多性能?也许检查一下你允许 php 消耗多少内存。我认为默认为 128mb,允许更多可能会停止内存/磁盘磨损?

如果您的应用程序很复杂,也许可以在 xdebug 中启用分析,并在 PHPStorm 中分析结果,看看是什么导致速度变慢。