OSS探訪GitHubでログイン

Rubyテストの実行結果を集約し、未実行コードを可視化するカバレッジ計測ライブラリ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
4,927
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

SimpleCovはRuby標準のCoverageライブラリから実行情報を集め、テスト群をまたいで結果を統合・整形・表示するライブラリです。HTMLとJSONのレポート、行・分岐の基準値、対象ファイルの絞り込みやグループ化を設定できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

複数のテスト結果を一つのレポートへまとめる

単体テストや統合テストなどの結果をキャッシュして自動的に統合し、テストスイート全体の未実行箇所を確認できます。標準で閲覧用HTMLとJSONのフォーマッターを備えています。

出典:[1]

計測対象と品質基準をコードで設定する

行と分岐のカバレッジを計測し、最低値、前回からの最大低下、ファイルごとの未実行行数を設定できます。対象ファイルの追加、除外、グループ化も開始ブロックまたは.simplecovで管理できます。

出典:[1]

向いている用途

Rubyアプリのテスト不足を具体的な行から調べる

RSpec、Minitest、Railsなどのテスト実行に組み込み、変更で未実行になった処理や、テストから一度も読み込まれないファイルを継続的に見つけたいチームに向いています。

出典:[1]

導入前の確認

アプリケーションコードより先に計測を始める

SimpleCov.startは対象のアプリケーションコードを読み込む前に実行する必要があります。別プロセスで動くサーバーや並列テストでは各プロセスの計測と結果統合を設計し、数値だけでテスト品質を判断しないでください。

出典:[1]

参考にした公式資料

  1. [1]simplecov-ruby/simplecov README at reviewed commit(2026-10-04)
  2. [2]SimpleCov v1.3.2 release(2026-10-04)
  3. [3]SimpleCov MIT License(2026-10-04)
編集部からの補足

割合だけを目標にせず、どの行がどのテストで実行されたか、未計測ファイルが除外されていないかまで確認すると改善箇所を判断しやすくなります。

3ステップで試す

  1. 1

    検証用Rubyプロジェクトを作る

    空のディレクトリにGemfileと計測対象コード用のlibディレクトリを作成します。

    mkdir simplecov-demo && cd simplecov-demo && bundle init && mkdir lib
  2. 2

    SimpleCovを追加する

    Ruby 3.3以降の環境で、確認済みのv1.3.2をGemfileへ追加して依存関係を解決します。

    bundle add simplecov --version 1.3.2
  3. 3

    最小コードを計測する

    SimpleCov.startの後でプロジェクト内のlib/demo.rbを読み込み、メソッドを実行します。最後に結果JSONを読み、対象ファイルと実行済み行が記録されたことを確認します。

    printf '%s\n' 'module Demo' ' def self.answer' ' 42' ' end' 'end' > lib/demo.rb && printf '%s\n' "require 'simplecov'" "SimpleCov.start { cover 'lib/**/*.rb' }" "require_relative 'lib/demo'" "abort 'unexpected result' unless Demo.answer == 42" > driver.rb && bundle exec ruby driver.rb && ruby -rjson -e "r=JSON.parse(File.read('coverage/.resultset.json')); c=r.values.first.fetch('coverage'); f=c.keys.find { |p| p.end_with?('/lib/demo.rb') }; abort 'lib/demo.rb missing from report' unless f; abort 'no executed line recorded' unless c.fetch(f).fetch('lines').compact.any? { |n| n > 0 }; puts f"
公式READMEで確認

成長

成長の推移 · 直近30日

4,927 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
42
Open PR
0

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • ruby
  • test-coverage
  • code-quality
  • rails
  • coverage
  • coverage-report
  • coverage-library
Stars
4,927
Forks
579
Watchers
58
Open Issues
0
Contributors
210
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?