为Rails 3应用程序运行rake spec:rcov
时,spec/
目录中的文件将包含在coverage统计信息中,但我不希望它们出现。我只希望覆盖统计数据用于我的实际应用。
在旧版本的RSpec中,可以使用spec/rcov.opts
文件使用行--exclude "spec/*"
对其进行自定义,但似乎Rspec 2不再读取该文件。我尝试创建{{ 1}}文件,因为.rcov
已更改为spec/spec.opts
,但该文件也未被读取。
我在定义rake任务时找到了一些关于如何执行此操作的文档,但我宁愿不覆盖提供的rake任务 - 看起来这必须是其他人尝试过的事情。
如何自定义从coverage统计信息中排除的文件?
作为参考,我正在使用的所有相关宝石的版本是:
.rspec
答案 0 :(得分:6)
在RSpec-1中,rake任务将会读取 来自
rcov.opts
的rcov选项 文件。 RSpec-2忽略了这一点。 RCov选项现在直接设置 耙子 任务:RSpec::Core::RakeTask.new(:rcov) do |t| t.rcov_opts = %q[--exclude "spec"] end
检查rspec-rails
源代码我发现该库定义了:rcov
任务,但它似乎没有排除rspec文件夹。
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
您可能希望删除任务并使用自己的设置重新创建任务或定义新任务。