Jer*_*auw 5 php testing phpunit code-coverage
我正在使用 PHPUnit 生成代码覆盖率报告
vendor/bin/phpunit --coverage-clover coverage.clover
Run Code Online (Sandbox Code Playgroud)
我有一些代码库@covers在他们的测试中使用了这个标签,表明他们测试的服务。在这些代码库中,没有专门针对值对象之类的测试。这导致覆盖率报告表明许多代码未经测试,而实际上它是。这使得通过查看覆盖率报告很难找到实际的未经测试的代码。解决此问题的一种方法是删除@covers标记,尽管这些标记对于指示意图很有用,并且在 IDE 识别它们时有助于导航。因此我希望 PHPUnit 忽略标签。
我发现有一个--disable-coverage-ignore标志,它使 PHPUnit 忽略覆盖忽略标签。我正在寻找的东西本质上是相反的。
有没有办法生成代码覆盖率报告来计算所有执行的行,而无需通过这些整个代码库进行更改,例如删除所有@covers标签?
小智 1
创建了一个PR来实现这一点,但不幸的是从未合并。作为一种快速而肮脏的工作技巧,您可以在 PHPUnit 的源代码中添加一行。只需添加为文件中方法return false;的第一行,如下所示:applyCoversAnnotationFiltervendor/phpunit/php-code-coverage/src/CodeCoverage.php
private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed, $ignoreForceCoversAnnotation)
{
return false;
Run Code Online (Sandbox Code Playgroud)
为我工作PHPUnit 6.5.14。
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |