2010-03-31
HudsonでperlプロジェクトのCI - Devel::Coverでcoverage取得
HudsonでPerlプロジェクトのCIをしていると、Test CoverageもCIでみたいということは良くあるんじゃないかと思います。
事前準備
Husonの管理画面から、「HTML Publisher Plugin」をインストールします。
ビルドの設定
次にプロジェクトのビルドの設定をします。プロジェクトをチェックアウトするところは、適宜Git pluginやSubversion(組み込み)を使うなりチェックアウトしてください。
その後で、「ビルド手順の追加」をクリックして、Devel::Coverでカバレッジレポートを生成します。
perl Makefile.PL HARNESS_PERL_SWITCHES=-MDevel::Cover=+ignore,inc make test cover
その後、「ビルド後の処理」で、Publish HTML reportsをチェックします。
HTML directory to archiveに、以下のようにcover_dbのディレクトリを指定します。
/Users/dann/.hudson/jobs/test-skip-unlessexistsexecutable/workspace/cover_db/
IndexPageに、coverage.htmlを指定します。
coverage.html
Report titleに、
Coverage Report
を指定します。
結果
これでビルド時に、Devel::CoverがCoverage Reportを生成し、Hudson上からCoverage Reportを参照できるようになります。
生成されたHTMLを参照しているだけなので、とてもシンプルですが、CI環境から一括で参照できるのは便利ですね。Devel::NYTprofについても同様にHudsonで実行しておくと、継続的にパフォーマンス状況を確認できるのでとても便利です。
次回
次回は、perlのプロジェクトのCIをHudsonでする方法について説明します。昔に書いたときには、JUnit形式でXMLを出力して、テスト結果をビジュアルに表示する方法まを説明していなかったので、それを含めて説明する予定です。
Devel::Cover のレポートの出力ディレクトリですが、Hudson の作業ディレクトリからの相対パスになっているはずなので、絶対パスを指定しなくても、「cover_db」を HTML Publisher に渡せば動くと思います。(私のところでは動きました)。