5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RubyのSPECテストカバレッジ率を可視化できるGem SimpleCov

5
Last updated at Posted at 2026-04-11

RSpecでテストを書いていると、こんな疑問が浮かんできませんか?

「このテスト、ちゃんとコードを網羅できてるの?」

テストを書いた気になっていても、実は重要な処理がテストされていない…
ということはよくあります。

そこで今回は SimpleCov というGemを使って、
テストのカバレッジ率(どれだけコードがテストされているか)を
可視化する方法をまとめました。

☆この記事でわかること☆

  • SimpleCovの導入方法
  • カバレッジレポートの見方
  • カバレッジ率を上げるためのヒント

【ちょっと宣伝】こんなアプリを作っています。
ゲームx思い出を記録できるアプリ SaveData


SimpleCovとは?

SimpleCovはRuby用のコードカバレッジ計測ツールです。

RSpecと組み合わせることで、
テスト実行後に HTMLレポートを自動生成 してくれます。

こんな感じで表示されます。

  • 全体のカバレッジ率(例: 87.5%)
  • ファイルごとの詳細
  • テストされていない行が赤くハイライト される

導入手順💻

① Gemfileに追加する

group :test do
  gem 'simplecov', require: false
end

require: false をつけることで、必要なときだけ読み込む設定にします。

② bundle install

bundle install

③ spec/spec_helper.rb の先頭に追記する

⚠️ 必ず先頭に書きましょう。
他のrequireより後に書くと正しく計測されません。

# spec/spec_helper.rb の一番上
require 'simplecov'
SimpleCov.start 'rails'

# 以下、既存のコード
RSpec.configure do |config|
  # ...
end

'rails' を引数に渡すことで、
テスト対象外のファイル(viewsやmigrationsなど)を自動で除外してくれます。

④ RSpecを実行する

bundle exec rspec

実行が完了すると、こんなメッセージが表示されます。

Coverage report generated for RSpec to /your_project/coverage/index.html.
87.5% covered.

⑤ レポートをブラウザで確認する

open coverage/index.html

スクリーンショット 2026-04-12 12.14.21.png

今で71パーセント。これがどのくらいかというと最低限の水準くらいです。

カバレッジ率の目安

評価
〜60% テストが足りていません
60〜80% 最低限の水準
80〜90% よくできています
90%〜 高品質なテスト体制

少なくとも80%以上 はカバーしたいところです。


レポートの見方

スクリーンショット 2026-04-11 21.41.42.png

表示色 意味
テストされている行
テストされていない行
グレー コメントや空行(計測対象外)

赤い行が多いファイルから優先的にテストを追加していくのが効率的です。


.gitignoreに追加する

coverage/ ディレクトリはGitで管理不要なので、忘れずに除外しましょう。

# .gitignore
/coverage

CIと組み合わせる(おまけ)

GitHub Actionsなどでテストを自動実行している場合、SimpleCovはそのまま動作します。

ローカルと同じ設定で計測されるので、特別な追加設定は不要です。

CIのログに xx% covered. と表示されるようになります。

SPECテストを除外したいファイルがある場合

 .simplecov というファイルを作って除外設定する
SimpleCov.start 'rails' do
  add_filter '/channels/'
  add_filter '/jobs/'
  add_filter 'app/controllers/users/omniauth_callbacks_controller.rb'
end

使用していないものもカバレッジテストの結果に出てしまうので
使ってないものに関しては除外もできます。

まとめ

手順 内容
① Gemfileに追加 gem 'simplecov', require: false
② bundle install 依存関係をインストール
③ spec_helper.rbに追記 先頭に require 'simplecov'SimpleCov.start 'rails'
④ RSpec実行 bundle exec rspec
⑤ レポート確認 coverage/index.html をブラウザで開く

やって良かったこと🌟

  • テストが通っても「どこが漏れているか」が一目でわかるようになった
  • 赤くハイライトされた行を見るだけで、次に書くべきテストがわかる
  • ポートフォリオのテスト品質を数字で示せるようになった

導入コストがほぼゼロなのに、テストの質を上げる効果は大きいです。
ぜひお試しください。

最後までお読みいただきありがとうございました🙏

こんなアプリを作っています。よければ触ってみてください!
ゲーム × 思い出を記録できるアプリ SaveData

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?