8

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?

JoshReedSchramm
  • 2,751
  • 1
  • 27
  • 45

4 Answers4

8

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
  • 414
  • 3
  • 8
5

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
  • 218
  • 3
  • 9
3

We use simplecov at work, and find it easy and effective. I find it to be a cleaner solution than modifying rspec source directly, especially when you have CI servers to worry about.

  • 1
    Today (8/21/2012) this is pretty much the right answer. At the time this question was posed rspec2 was new, simplecov really didn't exist yet. – JoshReedSchramm Aug 22 '12 at 00:37
  • 2
    simplecov works only in 1.9.*. rcov works only in 1.8.*. you can't really use simplecov if you are on 1.8 – yiwen Oct 26 '12 at 21:07
0

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,751
  • 1
  • 27
  • 45