テストは、プロダクトの品質を高めるために有効な手段な一つです。実行したテストがどれだけソースコードを網羅できたかを計測して分析することをテストカバレッジ分析といいます。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%にすることが大切なのではなくて、自分たちが書いたテストの結果どれだけ網羅できているか?意図した箇所が網羅されているか?など分析していくことが大切です。
また別記事でまとめていきたいです。