LoginSignup
2
0

More than 5 years have passed since last update.

simplecovでファイルごと集計外とする

Posted at

経緯

古いAPIのファイルにはテストがなく追加する際にテストの網羅率をsimplecovで取りながら進捗を見るときがある。
廃止予定でテストの追加必要ないが、まだ古いバージョンのクライアントで多少使っていてすぐには消せないということがある場合、simplecovの集計対象外としたいときがある。

simplecovの除外する機能

simplecovにも以下のようにスキップのオプションは存在するがファイルごと除外したい場合などにコメントが大量に追加されてしまうのはつらいので簡単に除外させたい。

# :nocov:
def skip_this_method
  never_reached
end
# :nocov:

解決策

Filterで独自のタグを読み込んでファイルごと除外すると簡単に除外対象にできていいかもしれない。

user_application_controller.rb
# :nocov_all:

class UserApplicaitonCotroller < ApplicationController
  def index
    ...
  end
end
spec/rails_helper.rb

require 'simplecov'
SimpleCov.start 'rails' do
  add_filter do |source_file|
    # ファイルの読み方や10行以内というのは要件次第
    File.open(source_file.filename).readlines.take(10).any?{|line| line.include?(':nocov_all:')}
  end
end
2
0
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
2
0