如何提高Codeception Code Coverage速度

问题描述 投票:0回答:2

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

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

现在它已经用了一个星期,但整个代码覆盖执行还没有完成。

我不确定这是来自codeception还是xdebug本身的问题,但如果有人在巨大的代码库上运行php codecoverage的经验,如果你能分享你如何实现它会很好。如果有人可以建议任何其他工具来调查,也会感激不尽。目前我们正在考虑切换到phpunit,但仍然可以使用其他工具进行探索。

php unit-testing code-coverage laravel-5.5 codeception
2个回答
2
投票

用PHPUnit替换Codeception将是一项很少的工作,因为Codeception使用PHPUnit及其PHP-Code-Coverage库。

有一个新的代码覆盖扩展,称为pcov,据说比xdebug快得多。 https://github.com/krakjoe/pcov/blob/develop/INSTALL.md

我没有尝试过使用它,但请注意它需要PHPUnit 8,它仅适用于PHP 7.2或更高版本。


0
投票

最近我看到代码覆盖率通过用phpdbg替换xdebug来加速 - 我无法给出确切的数字,因为代码库在其测试运行中具有广泛的功能测试(并且加速仅用于单元测试),但是2+小时测试和覆盖范围已减少到大约50分钟。

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

编辑:

由于用phpdbg替换了xdebug,我通过用pcov替换phpdbg看到了进一步的速度提升。

© www.soinside.com 2019 - 2024. All rights reserved.