【问题标题】:How to make Perl's Devel::Cover ignore certain lines in coverage total?如何使 Perl 的 Devel::Cover 忽略覆盖范围中的某些行?
【发布时间】:2013-01-04 05:59:18
【问题描述】:

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

暂且不说这是否明智,Perl 的Devel::Cover 是否有可能做到这一点?

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

【问题讨论】:

  • 你能提供一个你想忽略的样本吗?这听起来像是您在尝试解决错误的问题。

标签: perl code-coverage


【解决方案1】:

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

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

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

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

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多