読者です 読者をやめる 読者になる 読者になる

Jenkinsでカバレッジを表示する

Ruby on Rails

Simple_covを利用してカバレッジを測定する場合、Jenkinsではそのまま表示することはできませんでした。詳しくはこちらのサイトに記述がありましたが、下記の手順でJenkinsにカバレッジ結果を表示することができるようになりました。

Jenkins, Rails, Code Coverage + a gotcha - an IT dad

手順としては次の通りとなります。

1.Jenkinsに Ruby metrics plugin を追加と設定を行います。

プラグインの追加は様々なWEBページで説明があるので端折りますが、設定内容だけ下記の通りメモしておきましょう。

2.カバレッジ測定結果を simplecov-rcov 形式で出力するために simplecov-rcov をインストールします。

simplecov-rcovをgemでインストールします。

[sourcecode language="ruby"]

gem install simplecov-rcov

Successfully installed simplecov-rcov-0.2.3 1 gem installed [/sourcecode]

次に test_helper.rb の2行目~3行目にsimplecov-rcovへの参照の追加と出力形式の設定を行います。

[sourcecode language="ruby"] require 'simplecov' require 'simplecov-rcov' SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter SimpleCov.start 'rails' [/sourcecode]

3.Jenkinsのプロジェクトを実行するとカバレッジ測定結果が出力されます。

これでUnitテストの有効性と修正による影響をJenkinsで一元管理することができるようになりました。

むかし、MSBuild + CruiseControl.NETで同じようなことをしようとして挫折しましたが今回は驚くほど簡単に進みました。おそらくJenkinsは設定ファイルを自分で編集する必要がない(すべて画面で設定しました。設定ファイルの保存先さえ知らない…。)ことと、プラグインが豊富だということがあるのだと思います。

また、海外のサイトを見ればわかりますが、海外では情報が非常に豊富にあります。英語がわからない私でもソースコードやサンプルなどを確認し、設定してはJenkinsプロジェクトを実行してログを確認→修正するという流れでそれほど時間をかけずにここまでたどり着けました。

次は、RedmineまたはTracとの連携を行いたいと思いつつApatch+Passengerで公開できる環境を作ってそこへのディプロイの仕組みを作ろうかと思っています。また、.NETやJavaでも同様のことができるので既存の資産についてそのうち移行していきたいと思います。

※ Jenkinsを作成・メンテナンスされている方々には感謝です。また、ここまで情報を提供していただいた多くのブロガーさんにも感謝します。