RSpec と SimpleCov を使ってカバレッジを計測、表示する

結論

1. まず SimpleCov をインストール

  • 以下ではシェルからインストールしていますが、Gemfileに書いてbundle installでもよいです。
$ gem install simplecov

2. spec_helper.rb で simplecov を require する

spec_helper.rb内にrequire 'simplecov'するように記述します。spec_helper.rbの先頭に書けばいいでしょう。

require 'simplecov'

RSpec.configure do |config|
(省略)
end

3. spec_helper.rb に、カバレッジの測定で除外するディレクトリを書き加える

spec_helper.rb内に「SimpleCov.start doend」という部分を書き加えて、その部分で SimpleCov の設定を行います。この「SimpleCov.start doend」を書く場所は「RSpec.configure do |config|end」の部分の外側です。

SimpleCov.start doend」の中身にadd_filterというメソッドを用いて、カバレッジ測定対象から除外するディレクトリ(ファイル)を書きます。当該指定は配列で行うことができます。正規表現も使えます。

以下が上記内容の例となります。

require 'simplecov'

SimpleCov.start do
  add_filter ['vendor/', 'spec/']
end

RSpec.configure do |config|
(省略)
end

4. RSpec を実行する

あとはRSpecを実行すれば、それと同時にカバレッジを計測した内容が含まれたウェブページ一式がcoverage/に生成されます。

参考

  • 公式ドキュメント

github.com

Powered by はてなブログ