我正在使用codeception(使用codecoverage)来检查我使用Yii2框架编写的应用程序的代码覆盖率。因为我的mac上的标准php安装没有启用xcode,所以我激活了它,在我的php.ini中添加了一个zend_module行。代码覆盖现在似乎有效,但速度很慢。是的我知道激活的xdebug和coverage生成需要一些时间,但我认为这是不正常的:即使只检查对象初始化的简单单元测试也需要15分钟。
我不认为这是一个cpu或ram问题,而不是配置问题。
我用以下代码开始代码覆盖:
codeception run unit --coverage-html
我发现的事情:无论有多大,第一次测试总是很快。第二个测试要慢得多(无论测试是什么),第三个测试更慢。我该如何追踪?我想发现问题。
再说一次:我知道代码覆盖会减慢测试速度,但是简单测试15分钟是不正常的。
//编辑:大约运行的测试。 15分钟,需要1秒而不启用代码覆盖率。
答案 0 :(得分:0)
你需要启用xdebug才能获得覆盖范围(你现在已经完成了!)所以禁用它将无济于事。
运行这些分析检查时会产生巨大的开销,例如我的Laravel应用程序符合~300次测试和~1000次断言。获得覆盖率报告时,运行大约需要5分钟,但xdebug关闭,没有覆盖大约15秒。
您可以在配置php.ini时获得更多性能吗?也许检查一下你允许php消耗多少内存。我认为默认它是128mb,允许更多可能会停止内存/磁盘研磨?
如果您的应用程序很复杂,可能会在xdebug中启用分析,并在PHPStorm中分析结果,看看是什么导致速度变慢。