tags:

views:

822

answers:

3
+3  Q: 

RCov with RSpec-2

I'm working with a bit of a bleeding edge rails app. Rails 3, RSpec 2, Rspec-Rails2.

It seems as if RSpec2 doesn't include the spec:rcov rake task that RSpec 1 has. (at least it isn't there yet)

Has anyone had any luck running rcov with rspec 2, or writing their own rake task to make this work?

A: 

Came up with this -

1) Open ~/.rvm/rubies//lib/ruby/gems//gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task in your favorite editor.

2) Add this rake task

desc  “Run all specs with rcov”
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
  t.rcov = true
end

One outstanding problem. it runs rspec on every spec in both my rvm install folder and the project i'm in when i run the task. I can't figure out how to exclude all those rvm install tests. If anyone has an idea please let me know.

JoshReedSchramm
+2  A: 

Try passing in options to exclude the gem directory. Or since your running rails use the rails flag:

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
Nick L
this is exactly what i ended up doing. Thanks.
JoshReedSchramm
Where's this supposed to live?
Aupajo
A: 

If you happen to be on Ruby 1.9x, I just got CoverMe (an rcov-ish lib that works under 1.9) working. Snappy and works out of the box w/ RSpec -- pretty much a plug-n-play setup. It just silently does your /coverage stuff every time you run rake:spec. Thought I'd mention it since I'm running 1.9.2preview3 on my bleeding edge stuff and it's possible you'll run into some 1.9 issues if you're using it.

trevrosen