3

在某些代码覆盖率工具中,您可以从覆盖率工具中“隐藏”某些代码行,以便这些行不计入覆盖率总数。例如,某些代码可能仅在难以或无法测试的情况下运行(例如某些硬件故障)。因此,即使未执行某些代码,您也可能会报告 100% 的覆盖率。

暂且不说这是否明智,Perl 的这种事情可能Devel::Cover吗?

Devel::Cover可以忽略整个文件,但我有兴趣忽略单个文件中的几行。)

4

2 回答 2

4

已经实现了许多可发现的代码功能,但由于我不确定接口,因此没有记录它们。然而,该领域的任何变化已经过去了几年。

了解如何使用这些功能的最简单方法可能是查看发行版中的测试/不可覆盖(请参阅https://github.com/pjcj/Devel--Cover/blob/master/test/uncoverable)。如果您不能或不想更改代码,您可以使用 .uncoverable 文件(请参阅https://github.com/pjcj/Devel--Cover/blob/master/tests/.uncoverable)和封面工具中提到的选项。

如果您这样做,请务必使用 basic_html 报告,如果您将构造标记为可发现但仍会执行,该报告会将构造标记为错误。

我真的应该把所有东西都整理好并记录下来。

于 2013-01-04T21:50:33.950 回答
2

根据 CPAN 上的TODO 文件,目前不支持此功能,但开发人员认为这是一个有价值的补充:

  • 增强功能:
    • 标记无法访问的代码 - 命令行工具和 gui。

cover脚本提到了有希望的选项:-add_uncoverable_point-delete_uncoverable_point.

于 2013-01-04T13:25:28.987 回答