2010-05-20 43 views
4

Devel :: Cover生成的覆蓋率統計信息可以在Hudson的項目視圖中顯示,就像Cobertura插件一樣嗎?即使模糊的想法,表示讚賞!我如何獲得Devel :: Cover結果以顯示在Hudson?

+0

我不確定任何人在'模糊的想法'之後...'僞實現'怎麼樣? – Zaid 2010-05-20 21:18:08

+1

我猜我的意思是:「如果您聽說過任何可以指引我正確的方向,請將它寫下來!」 :) – Markus 2010-05-21 06:22:21

+0

我不確定你是否想聽到這個,但你可以隨時編寫自己的插件。 – 2010-05-21 14:30:59

回答

2

研究稀疏文件與混合超過試&錯誤的破折號大量之後,下面是我想出了一個蒸餾版本用。

#!/usr/bin/perl -w 

use strict; 
use warnings; 
{ 
    use TAP::Harness::JUnit; 
    use English qw(-no_match_vars $EXECUTABLE_NAME); 
} 

my $harness = TAP::Harness::JUnit->new(
    { xmlfile => 'results.xml', 
     exec  => [ 
      $EXECUTABLE_NAME, 
      "-I/repo/trunk/PerlLib", 
      '-MDevel::Cover=-silent,1,-coverage,all', 
      '-w', 
     ], 
     package => 'ARC::FB', 
    } 
);  

$harness->runtests(
    [ "/repo/trunk/ARC/FB/Base/basic.t"    => 'Base.basic.t' ], 
    [ "/repo/trunk/ARC/FB/Base/copy_file.t"   => 'Base.copy_file.t' ], 
    [ "/repo/trunk/ARC/FB/Base/create_file.t"  => 'Base.create_file.t' ], 
    [ "/repo/trunk/ARC/FB/Base/new.t"    => 'Base.new.t' ], 
    [ "/repo/trunk/ARC/FB/Base/report.t"   => 'Base.report.t' ], 
    [ "/repo/trunk/ARC/FB/Lurker/build_data_file.t" => 'Lurker.build_data_file.t' ], 
    [ "/repo/trunk/ARC/FB/Lurker/cleanup.t"   => 'Lurker.cleanup.t' ], 
    [ "/repo/trunk/ARC/FB/Lurker/remove_file.t"  => 'Lurker.remove_file.t' ], 
    [ "/repo/trunk/ARC/FB/Lurker/write_config.t" => 'Lurker.write_config.t' ], 
    [ "/repo/trunk/ARC/FB/Sign/add_tokens.t"  => 'Sign.add_tokens.t' ], 
    [ "/repo/trunk/ARC/FB/Sign/interpret.t"   => 'Sign.interpret.t' ], 
    [ "/repo/trunk/ARC/FB/Sign/new.t"    => 'Sign.new.t' ], 
); 

__END__ 

保存了上面的程序/usr/local/bin/harness.pl,然後配置你的詹金斯作業的shell執行此:

cover -delete 

/usr/bin/perl -w /usr/local/bin/harness.pl 

cover -report clover 

然後添加兩個交 - 構建動作:

  1. 發佈三葉草覆蓋報告(帶目錄cover_db,文件名 clover.xml)
  2. 發佈JUnit測試結果報告(W /個XML results.xml)

保存&運行它。

重要概念:

  • 詹金斯不明白的TAP(即Perl的輸出* .T),但它確實 理解JUnit的XML。因此,TAP :: Harness :: JUnit模塊將JUnit轉換添加爲TAP生成TAP :: Harness封裝器。
  • Devel :: Cover及其選項需要作爲TAP :: Harness exec參數的一部分內聯給出。
  • Devel ::如果在污染檢查下運行,蓋子會發出巨大的警告聲。

JUnit轉換後的TAP數據在Jenkins中呈現良好。但是,Clover報告缺乏源覆蓋範圍視圖。當您鑽入最終三葉草報告鏈接時,詹金斯給出了一個404頁面。

這是在Jenkins版本4.478上使用Clover plugin ver 4.0.6-h-1。