2008-10-23 51 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」,並有傑韋利::封面執行它的魔力。