Jenkins で Rails 3 プロジェクトのテスト結果とカバレッジをグラフ表示する
ある日突然「Rails 3 のプロジェクト作ったから Jenkins でテスト結果とカバレッジをいい感じで表示できるようにしておけよ」と言われて、一生懸命設定したときの内容をシェアする。
Scala (lift) 編は Jenkins で Scala (lift) プロジェクトのテスト結果とカバレッジをグラフ表示する - mallowlabsの備忘録 をご参照。
環境
- ruby 1.8.7
- rubygems 1.5.0
- rake 0.8.7
- rails 3.0.3
- ci_reporter 1.6.4
- Jenkins 1.414
- Jenkins ruby metrics plugin 1.5.0
- Jenkins Rake plugin 1.7.6
まずはローカルで設定
要は rcov と ci_reporter を組み込んだ Rails 3 アプリケーションを作ればよい。
適当なブログアプリケーションを scaffold で作りながら説明を行う。
$ rails new blog
Gemfile に rspec-rails と rcov、ci_reporter を追加する。
diff --git a/Gemfile b/Gemfile index 1758ad6..3948308 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,8 @@ gem 'sqlite3-ruby', :require => 'sqlite3' # Bundle gems for the local environment. Make sure to # put test-only gems in this group so their generators # and rake tasks are available in development mode: -# group :development, :test do -# gem 'webrat' -# end +group :development, :test do + gem 'rspec-rails', '>= 2.3.0' + gem 'rcov' + gem 'ci_reporter' +end
Rakefile に ci_reporter を追加する。
diff --git a/Rakefile b/Rakefile index 52e48e6..4f57aa4 100644 --- a/Rakefile +++ b/Rakefile @@ -3,5 +3,6 @@ require File.expand_path('../config/application', __FILE__) require 'rake' +require 'ci/reporter/rake/rspec' Blog::Application.load_tasks
いろいろ生成する。
$ rails generate scaffold article body:string title:string $ rails generate rspec:install $ rake db:migrate $ bundle install --path vendor/bundle
おまじないと一緒にテストを実行する。
$ rake ci:setup:rspec spec spec:rcov
spec/reports/*.xml と coverage/ が出来ていれば成功。
Jenkins の設定
ここまで出来ていればあとは簡単。
まとめ
テスト件数とカバレッジを表示すると、テストを書くモチベーションになるのでオススメ。