Hatena::Groupdann

dann's blog このページをアンテナに追加 RSSフィード

Fork me on GitHub

2010-03-31

HudsonでperlプロジェクトのCI - Devel::Coverでcoverage取得

HudsonでperlプロジェクトのCI - Devel::Coverでcoverage取得 - dann's blog を含むブックマーク はてなブックマーク - HudsonでperlプロジェクトのCI - Devel::Coverでcoverage取得 - dann's blog HudsonでperlプロジェクトのCI - Devel::Coverでcoverage取得 - dann's blog のブックマークコメント

HudsonPerlプロジェクトの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のプロジェクトのCIHudsonでする方法について説明します。昔に書いたときには、JUnit形式でXMLを出力して、テスト結果をビジュアルに表示する方法まを説明していなかったので、それを含めて説明する予定です。

http://dann.g.hatena.ne.jp/dann/20090205/p1

tsucchi1022tsucchi10222010/04/29 23:14こんにちは。
Devel::Cover のレポートの出力ディレクトリですが、Hudson の作業ディレクトリからの相対パスになっているはずなので、絶対パスを指定しなくても、「cover_db」を HTML Publisher に渡せば動くと思います。(私のところでは動きました)。

danndann2010/05/07 08:45どうもありがとうございます!後で追記しときますね。