simplecovを使ってみた
※実際に使ったのと記事を書いた時期にタイムラグがあるため漏れがあるかもしれません。ご了承下さいm(_ _)m
- 定義したメソッドに対してテストが書けているかを確認できる simplecov という gem を使ってみたのでその説明です
- 実際に使っている様子を以下のコミットで確認していただけます
使ってみて良かった事
- model、controllerなどで定義したメソッドのテストの有無をチェックしてくれるので漏れを解消できる
- テストを書く動機となった
- 何パーセントテストを書けているか教えてくれるので、100%にしたくなる
導入
- Gemfile に以下のように書き込み
bundle install
を実行
gem 'simplecov', require: false, group: :test
spec/spec_helper.rb
の先頭に以下のように書き込みます
require 'simplecov' SimpleCov.start
使い方
- いつも通りspecを流します
$ bin/rspec
- するとアプリのホームディレクトリに
coverage/index.html
というファイルが作成されます- gitで管理する必要は無いと思うので、私は coverage ディレクトリごとgit管理下から外してしまっています
- そのファイルをブラウザで開くと以下のようにファイルごとのテスト対応状況を一覧で表示してくれます
フィルタリング
- 使い方としては上記で終了なのですが、
vendor/bundle
配下に gem をインストールしているからか、そのテストも表示してしまうようです(でいいのかな?) vendor/bundle
配下のテストを非表示にするために、rails_app ディレクトリ配下に、以下のように.simplecov
というファイルを作成しましょう
SimpleCov.start :test_frameworks do add_filter "/vendor/bundle/" end
- ファイル作成後もう一度specを流すと、以下のように自身で書いたコードに対してのみテストが書かれているかどうかを表示してくれるようになりました
- 目指せ100%!!