[rspec-users] Rake tasks getting in the way of edge (uses gem instead)

Scott Taylor mailing_lists at railsnewbie.com
Sat Sep 8 16:10:56 EDT 2007

On Sep 4, 2007, at 3:55 PM, Pat Maddox wrote:

> So I'd been running gem releases of rspec for the past several months,
> and I installed edge rspec so that I can use Story Runner.
> I'm running into a problem because I've got a couple rake tasks that
> reference "spec/rake/raketask".  If I try to run "rake spec" then it
> pulls in the gem version instead of the plugin version.  rake blows up
> saying that the versions are incompatible...RSpec is at 1.0.8 and
> rspec_on_rails is at r2507.
> If I remove those rake tasks then it runs fine.  So it just seems that
> when rake starts up, it loads all the available task files, which
> includes a reference to require rspec stuff.  Since the plugins
> haven't been loaded yet it gets the gem version.
> afaik the solution is to build a new gem.  However I don't want to
> have to tell my team members to update their gem every single day.
> Also I think including rspec in vendor/plugins is supposed to obviate
> that anyway, but this is probably just some path loading stuff.
> Anyone else run into this?  How do you handle it?

If I understand you correctly, I think this will work in your rakefile:

$:.unshift File.dirname(__FILE__) + '/vendor/plugins/rspec/rspec/lib/'
require 'spec/rake/spectask'
require 'spec/rake/verify_rcov'

Then you can do something like this (as per usual):

desc "Run all examples with RCov"
Spec::Rake::SpecTask.new(:rcov) do |t|
   t.spec_files = FileList['spec/**/*.rb']
   t.rcov = true
   t.rcov_opts = ['--exclude', 'spec']
   t.rcov_dir = "doc/rcov"


More information about the rspec-users mailing list