2008-10-23 64 views

回答

21

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

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

perl Build.PL 
./Build testcover 

运行整个测试套件,使尼斯HTML,其中组合覆盖率报告您可以浏览您的模块并观察其覆盖范围。

28

像往常一样,CPAN是你的朋友:有一个在Devel::Cover

+0

请不要链接到特定版本的模块。试试http://search.cpan.org/perldoc?Devel::盖住。 – cjm 2008-10-23 15:21:06

11

如前所述,Devel :: Cover是你的朋友,但你也会想要谷歌。它的文档有点稀疏,如果你从根本上改变你的环境,你需要重新安装它,因为它在你安装时从你的环境中取出一堆信息来构建Devel :: Cover :: Inc。由于我们有一个共享的CPAN环境,这给我们造成了很多问题,如果一个开发人员安装了Devel :: Cover并且一个不同的开发人员尝试运行它,奇怪的(和不正确的)结果是很常见的。

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

5

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

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

eval "use ExtUtils::MakeMaker::Coverage"; 
if([email protected]) { 
    print "Adding testcover target\n"; 
} 

...将允许运行命令“使testcover”,并有杰韦利::封面执行它的魔力。