如何使Perl的Devel :: Cover忽略覆盖总数中的某些行?

时间:2013-01-04 05:59:19

标签: perl code-coverage

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

暂时搁置这是否明智,Perl的Devel::Cover是否可以做到这一点?

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

2 个答案:

答案 0 :(得分:4)

许多不可移植的代码功能已经实现但是没有记录,因为我不确定接口。然而,自那个领域发生任何变化以来已经过了几年。

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

如果你这样做,请务必使用basic_html报告,如果你将它标记为不可移动但是它仍然会被执行,那么它会将构造标记为错误。

我真的应该整理一下并记录下来。

答案 1 :(得分:2)

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

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

cover脚本提到了有前途的选项:-add_uncoverable_point-delete_uncoverable_point