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

有帮助吗?

解决方案

是的, Devel :: Cover 是您的最佳选择。

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

 perl Build.PL
 ./Build testcover

运行整个测试套件,并使用漂亮的HTML制作综合报道报告,您可以在其中浏览模块并查看其覆盖范围。

其他提示

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

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

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

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

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

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

...将允许一个人运行命令'make testcover'并让Devel :: Cover发挥其魔力。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top