さまざまな理由から、ガードからファイルをリロードするたびにコード カバレッジを実行するのはかなりの負担です。ただし、条件付きで SimpleCov がスペック ヘルパーから起動しないようにする方法はないようです。
ガードによって実行されたときにSimpleCovを無効にする方法はありrake spec
ますか?
さまざまな理由から、ガードからファイルをリロードするたびにコード カバレッジを実行するのはかなりの負担です。ただし、条件付きで SimpleCov がスペック ヘルパーから起動しないようにする方法はないようです。
ガードによって実行されたときにSimpleCovを無効にする方法はありrake spec
ますか?
私は最終的にこの解決策を見つけました:
に環境変数を追加しますGuardfile
。
guard :rspec, env: { 'NO_COVERAGE' => 'true' }
仕様ヘルパーから確認します。
SimpleCov.start :rails unless ENV["NO_COVERAGE"]
仕様ヘルパーで:
unless ARGV.any? {|e| e =~ /guard-rspec/ }
SimpleCov.start
end
ここでの考え方は、guard-rspec が特別な guard-rspec フォーマッターで rspec を呼び出すというものです。与えられたコマンド ラインでそれを探すと、それが Guard から呼び出されたというヒントが得られるので、SimpleCov がある場合はスキップできます。
VsCode ではNO_COVERAGE=true bin/rspec
、拡張子にRuby Spec Command: を使用します。Rails Run Spec
コマンドラインでも機能します:NO_COVERAGE=true bin/rspec spec/*_spec.rb
またはNO_COVERAGE=true bundle exec rspec spec/*_spec.rb