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 都有哪些代码覆盖工具?的主要内容,如果未能解决你的问题,请参考以下文章