2018年以降の記事はGitHub Pagesに移行しました

simplecovとsimplecov-rcovを使ってJenkinsでカバレッジを確認

あらすじ

rcovインストールに思いの他てこずったので他のツールを検討してみる。

調べるとsimplecov,simplecov-rcovというツールでもいける様子。Ruby1.9系のカバレッジツールらしいが1.8でも使えるだろうか。あとRailsじゃなくても使えるのかな。

手順(Getting Startedをかなりはしょりながら)

Simplecov

Gemfileに以下を追加。

gem 'simplecov'

次にspecファイルに以下のrequireを追加。

require 'simplecov'
SimpleCov.start

そしてrspecを実行。

$ bundle exec rspec -fs spec\convert_spec.rb
WARNING: SimpleCov is activated, but you're not running Ruby 1.9+ - no coverage analysis will happen
WARNING: SimpleCov is activated, but you're not running Ruby 1.9+ - no coverage analysis will happen

やっぱ1.8じゃだめかー。ちょっとRuby1.9系で試してみる。

$ bundle exec rspec -fs spec\convert_spec.rb

(略)

Coverage report generated for RSpec to C:/project/excel_for_ruby/coverage. 87
/ 93 LOC (93.55%) covered.

テストは失敗したけど、coverageディレクトリが作成された! 中のindex.htmlを開くと……。

おおー!

Simplecov-rcov

JenkinsのRuby metrics plugin用にSimpleCovで出力したカバレッジrcovフォーマットになおしてくれる?
Gemfileに以下を追加。

gem 'simplecov-rcov'

次にspecファイルに以下のrequireを追加。

require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter

そしてrspecを実行。

$ bundle exec rspec -fs spec\convert_spec.rb

(略)

Coverage report Rcov style generated for RSpec to C:/project/excel_for_ruby/coverage/rcov

ちょっと表記が変わった。coverageの下にrcovという新しいディレクトリが出来ている。その下にindex.html。

Jenkins
  • Jenkinsの管理 -> プラグインの管理からRuby metrics pluginをインストール
  • プロジェクトの設定 -> ビルド後の処理 -> Publish Rcov reportにチェック