我正在使用一些前沿的应用程序。 Rails 3,RSpec 2,Rspec-Rails2。
似乎RSpec2不包含RSpec 1具有的spec:rcov rake任务。 (至少它还没有)
有没有人有幸运行rcov与rspec 2,或编写自己的rake任务来完成这项工作?
答案 0 :(得分:7)
尝试传入选项以排除gem目录。或者因为您的运行轨道使用rails标志:
desc "Run all specs with rcov"
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
t.rcov = true
t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/,features\/}
end
答案 1 :(得分:4)
如果您碰巧使用Ruby 1.9x,我只需要CoverMe(一个工作在1.9以下的rcov-ish lib)。 Snappy和RSpec开箱即用 - 几乎是一个即插即用的设置。每次运行rake时,它都会默默地执行你的/覆盖范围:spec。我以为我会提到它,因为我在我最前沿的东西上运行1.9.2preview3,如果你正在使用它,你可能遇到1.9个问题。
答案 2 :(得分:2)
我们在工作中使用simplecov,并且发现它简单有效。我发现它比直接修改rspec源更清晰,特别是当你担心CI服务器时。
答案 3 :(得分:0)
想出了这个 -
1)在您喜欢的编辑器中打开〜/ .rvm / rubies // lib / ruby / gems // gems / rspec-rails-2.XXXXX / lib / rspec / rails / tasks / rspec.task。
2)添加此rake任务
desc “Run all specs with rcov”
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
t.rcov = true
end
一个突出的问题。它在我的rvm安装文件夹和我运行任务时所在的项目中的每个规范上运行rspec。我无法弄清楚如何排除所有这些rvm安装测试。如果有人有想法,请告诉我。