4

rake spec:rcovRails 3アプリケーションで実行すると、spec/ディレクトリ内のファイルがカバレッジ統計に含まれますが、含まれたくありません。実際のアプリケーションのカバレッジ統計のみが必要です。

古いバージョンのRSpecでは、このspec/rcov.opts行のあるファイルでこれをカスタマイズできました--exclude "spec/*"が、ファイルはRspec 2で読み取られなくなったようです。に変更してから.rcovファイルを作成しようとしましたが、それも読み取られませんでした。spec/spec.opts.rspec

rakeタスクを定義するときにこれを行う方法に関するドキュメントをいくつか見つけましたが、提供されているrakeタスクを上書きしたくありません。これは他の人もやろうとしていることのようです。

カバレッジ統計から除外されるファイルをカスタマイズするにはどうすればよいですか?

参考までに、私が使用しているすべての関連するgemのバージョンは次のとおりです。

rails (3.0.5)
rake (0.8.7)
rcov (0.9.9)
rspec (2.5.0,)
rspec-core (2.5.1)
rspec-expectations (2.5.0,)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)
4

1 に答える 1

6

RSpecアップグレードファイルから:

RSpec-1では、rakeタスクはファイルからrcovオプションを読み込みrcov.opts ます。これはRSpec-2では無視されます。RCovオプションは、Rakeタスクで直接設定されるようになりました。

    RSpec::Core::RakeTask.new(:rcov) do |t|
      t.rcov_opts =  %q[--exclude "spec"]
    end

rspec-railsソースコードを調べると、ライブラリがタスクを定義していることがわかりましたが、:rcovrspecフォルダーが除外されていないようです。

desc "Run all specs with rcov"
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
  t.rcov = true
  t.pattern = "./spec/**/*_spec.rb"
  t.rcov_opts = '--exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-'
end

タスクを削除して独自の設定で再作成するか、新しいタスクを定義することをお勧めします。

于 2011-03-17T14:35:10.097 に答える