3
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?

More than 1 year has passed since last update.

Ruby 3.2を使ってRailsアプリのViewファイル(ERB)のカバレッジを測定する方法

Posted at

はじめに

今回は、Ruby3.2の新機能を使ってRailsアプリケーションでViewファイル(ERB)のコードカバレッジを計測する方法についてご紹介します。
ここでは、SimpleCovというカバレッジツールを使用して、Ruby3.1まで出来なかったViewファイル(ERB)のカバレッジを計測する方法を説明します。

前提条件

  • Ruby 3.2
  • SimpleCov 導入済み
  • ViewファイルをERBで記述している

Simplecovの設定例

以下を参考にSimpleCovの設定内容を見直していただければ、Viewファイル(ERB)のコードカバレッジが計測されるようになります。

.simplecov
SimpleCov.start('rails') do
  # この設定を追加することでERBファイルのカバレッジ計測が有効となる
  enable_coverage_for_eval

  # いい感じにグループ分けされるようにViewsのグループ定義を追加
  add_group 'Views', 'app/views'

  # 未実行ファイルの存在を検出するために対象となるERBファイルをGLOB指定
  # この設定を足すことでテストを全く通っていないERBファイルについてもカバレッジ0%として検出されるようになります
  track_files 'app/**/*.erb'
end

# ERBファイルの場合の不要な警告抑制のためのパッチ(無くても動作的には問題ありません)
# https://github.com/simplecov-ruby/simplecov/issues/1057
SimpleCov::SourceFile.prepend(Module.new do
  private

  def coverage_exceeding_source_warn
    return if @filename.end_with?('.erb')

    super
  end
end)
end

実行結果の例

Demo

終わりに

Viewファイル(ERB)のコードカバレッジについても計測対象とすることで、開発者がアプリケーションのテスト品質をより把握することが出来るようになるかと思います。
既にSimpleCovとERBを利用しているプロジェクトの場合は、設定を有効にすることを検討してみてはいかがでしょうか。

参考記事

3
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
3
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?