Ruby on Rails

【Ruby on Rails】gem "simplecov" を使ってテストカバレッジを計測

テストは、プロダクトの品質を高めるために有効な手段な一つです。実行したテストがどれだけソースコードを網羅できたかを計測して分析することをテストカバレッジ分析といいます。Railsでテストカバレッジ分析をするには、gem SimpleCov を使うのが便利です。

SimpleCov が計測するカバレッジの種類

テストカバレッジの計測方法は4つあります。

  • ステートメントカバレッジ
  • ディシジョンカバレッジ
  • 条件カバレッジ
  • 複合条件カバレッジ

SimpleCovは、「ステートメントカバレッジ」を計測するためのgemです。ステートメントカバレッジは、ソースコードを行単位でどれだけ網羅できているかを計測するための手法です。

SimpleCov の使い方

https://github.com/colszowka/simplecov

1. Gemfileに追加してインストール

  • Gemfileに追加して、bundle install を叩く
group :test do
  ...
  gem 'simplecov', require: false
end

2. test/rspecのhelperファイルに設定を追加

test/test_helper.rb or spec/rails_helper.rb の先頭に以下を追加

require 'simplecov'
SimpleCov.start

3. テストを実行

手順1、2で正しく設定できていれば、coverageフォルダに計測結果が出力される

4. .gitignoreの追加

計測結果は Git で追跡しないので、.gitignoreに追加する

echo "coverage" >> .gitignore

計測結果を分析する

SimpleCovを使うと、このような形でファイルごとにカバレッジを把握できるようになります。
カバレッジを100%にすることが大切なのではなくて、自分たちが書いたテストの結果どれだけ網羅できているか?意図した箇所が網羅されているか?など分析していくことが大切です。
また別記事でまとめていきたいです。

simplecovの計測結果

-Ruby on Rails