Perl 都有哪些代码覆盖工具?

Posted

技术标签:

【中文标题】Perl 都有哪些代码覆盖工具?【英文标题】:What are some code coverage tools for Perl?Perl 有哪些代码覆盖工具? 【发布时间】:2010-09-18 19:22:19 【问题描述】:

是否有任何适用于 Perl 的好的(最好是免费的)代码覆盖工具?

【问题讨论】:

【参考方案1】:

像往常一样,CPAN 是你的朋友:看看Devel::Cover

【讨论】:

请不要链接到特定版本的模块。请改用search.cpan.org/perldoc?Devel::Cover。 我仍然认为 perldoc 链接在这种情况下更好,因为它向您显示了文档。但是讨论这些链接方法优点的地方是***.com/questions/43758/… 在这种特殊情况下,我认为链接到发行版更合适,因为其中包含大量模块,以及教程。【参考方案2】:

是的,Devel::Cover 是要走的路。

如果您开发一个模块,并使用Module::Build 来管理安装,您甚至还有一个testcover 目标:

 perl Build.PL
 ./Build testcover

它运行整个测试套件,并以漂亮的 html 格式生成综合覆盖率报告,您可以在其中浏览模块并查看它们的覆盖率。

【讨论】:

谢谢,我只是有点疑惑,同一个问题一天回复了3个,两个几乎一模一样【参考方案3】:

如前所述,Devel::Cover 是您的朋友,但您也需要在 Google 上搜索它。它的文档有点稀疏,如果你彻底改变你的环境,你需要重新安装它,因为它构建了 Devel::Cover::Inc,在你安装它时会从你的环境中提取大量信息。这给我们在工作中带来了很多问题,因为我们有一个共享的 CPAN 环境,如果一个开发人员安装了 Devel::Cover 并且另一个开发人员尝试运行它,奇怪(和不正确)的结果很常见。

如果您使用此模块,还请查看Devel::CoverX::Covered。该模块将捕获 Devel::Cover 丢弃的大部分信息。非常方便。

【讨论】:

【参考方案4】:

Moritz 讨论了使用 Module::Build 构建的模块如何轻松使用 Devel::Cover。

对于使用 ExtUtils::MakeMaker 的模块,存在一个扩展模块来调用相同的功能。在调用 WriteMakefile() 之前添加以下代码:

eval "use ExtUtils::MakeMaker::Coverage";
if( !$@ ) 
    print "Adding testcover target\n";

... 将允许运行命令“make testcover”并让 Devel::Cover 发挥它的魔力。

【讨论】:

以上是关于Perl 都有哪些代码覆盖工具?的主要内容,如果未能解决你的问题,请参考以下文章

代码覆盖率VS测试覆盖率

Pytest08-pytest工具与插件

cobertura代码测试覆盖率使用案例

perl 中都有哪些可用的框架 [关闭]

情境探索工具都有哪些软件

Android 中布局的优化措施都有哪些?