Php 如何提高Codeception代码覆盖率

Php 如何提高Codeception代码覆盖率,php,unit-testing,code-coverage,laravel-5.5,codeception,Php,Unit Testing,Code Coverage,Laravel 5.5,Codeception,目前,我们已经使用codeception为我们的php laravel 5.5应用程序编写了一些单元测试。为了补充信息,我们的laravel代码库大约有200k LOC。对于正常的单元测试运行,我们注意到它非常快,我们可以在1小时内完成200多个测试 但主要问题是,当我们在默认情况下使用xdebug的codeception中启用codecoverage时,我们注意到执行时间急剧增加 现在已经花了1周时间,但是整个codecoverage的执行还没有完成 我不确定这是codeception还是xd

目前,我们已经使用codeception为我们的php laravel 5.5应用程序编写了一些单元测试。为了补充信息,我们的laravel代码库大约有200k LOC。对于正常的单元测试运行,我们注意到它非常快,我们可以在1小时内完成200多个测试

但主要问题是,当我们在默认情况下使用xdebug的codeception中启用codecoverage时,我们注意到执行时间急剧增加

现在已经花了1周时间,但是整个codecoverage的执行还没有完成


我不确定这是codeception还是xdebug本身的问题,但如果有人有在巨大的代码库上运行php codecoverage的经验,如果您能分享如何实现它,那就太好了。如果有人能推荐其他工具,我也会很感激的。目前,我们正在考虑切换到phpunit,但仍对其他工具持开放态度。

用phpunit替换Codeception将是大量工作,但收效甚微,因为Codeception在后台使用phpunit及其PHP代码覆盖库

有一个新的代码覆盖率扩展名为,据说它比xdebug快得多。


我没有尝试过使用它,但请注意它需要PHPUnit 8,这仅在PHP7.2或更高版本上可用。

最近我看到用phpdbg替换xdebug加快了代码覆盖率-我无法给出确切的数字,因为代码库在其测试运行中有大量的功能测试(而且这种加速仅用于单元测试),但是2个多小时的测试和覆盖时间已经减少到50分钟左右

注意,xdebug和phpdbg的代码覆盖率可能不同(看起来xdebug更好地处理了opcache优化)

编辑:


自从用phpdbg替换xdebug以来,我已经看到用pcov替换phpdbg进一步提高了速度。

这是否意味着目前在php上没有已知的代码覆盖工具可以在庞大的代码库上运行?我们的另一个想法是将单一应用程序分解为微服务,但这需要对整个应用程序进行重大重写。不管怎样,谢谢你的回复你可以在你喜欢的任何大小的代码库上使用pcov。。。您还可以在PHPUnit 8之前的版本上使用pcov(测试到6.5),并进行一些黑客操作。。。包含在。。。我的建议(我写了pcov)是尽快更新到PHPUnit 8。。。