类型覆盖率

源代码github.com/pestphp/pest-plugin-type-coverage

类型覆盖率是一种用于衡量代码中由类型声明覆盖的百分比的指标。这可以帮助开发人员识别其代码中可能未完全类型化的部分,表明潜在的错误和其他问题的风险。

要开始使用 Pest 的类型覆盖率插件,您需要通过 Composer 引用该插件。

1composer require pestphp/pest-plugin-type-coverage --dev

引用插件后,您可以使用--type-coverage选项生成类型覆盖率报告。

1./vendor/bin/pest --type-coverage

与代码覆盖率不同,类型覆盖率不需要您编写任何测试。相反,它会分析您的代码库并生成类型覆盖率报告。此报告将显示文件列表及其对应的类型覆盖率结果。

如果您的任何文件缺少类型声明,它们将以黄色突出显示,并使用它们各自的行号和缺少的声明类型显示。

例如,rt31表示第 31 行函数的返回类型缺失。另一方面,pa31表示第 31 行函数的参数类型缺失。

忽略错误

有时,您可能希望忽略特定的错误或代码行。为此,您可以使用@pest-ignore-type注释

1 protected $except = [ // @pest-ignore-type
2 // ...
3 ];
4}

最低阈值强制

与代码覆盖率一样,类型覆盖率也可以强制执行。为了确保添加到应用程序中的任何代码都完全类型化,您可以使用--type-coverage--min选项来定义类型覆盖率结果的最小阈值。如果未满足指定的阈值,Pest 将报告失败。

1./vendor/bin/pest --type-coverage --min=100

不同的格式

此外,Pest 支持将类型覆盖率报告到特定文件。

1./vendor/bin/pest --type-coverage --min=100 --type-coverage-json=my-report.json

在本章中,我们讨论了 Pest 的类型覆盖率插件以及如何使用它来衡量由类型声明覆盖的代码百分比。在下一章中,我们将解释如何使用变异测试来提高测试质量:变异测试 →