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

David Chelimsky dchelimsky at gmail.com
Tue Sep 4 17:14:03 EDT 2007


On 9/4/07, Pat Maddox <pergesu at gmail.com> wrote:
> On 9/4/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> > On 9/4/07, Pat Maddox <pergesu at gmail.com> wrote:
> > > On 9/4/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> > > > On 9/4/07, Pat Maddox <pergesu at gmail.com> 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?
> > > >
> > > > See http://rspec.rubyforge.org/documentation/rails/install.html
> > >
> > > I managed to fix it by changing the require to use the full path to the plugin:
> > >
> > > require "vendor/plugins/rspec/lib/spec/rake/spectask"
> >
> > Ah - so you already had rspec installed as a plugin also? I didn't
> > understand that part (clearly).
> >
> > Where is that require? I'll updated it in the plugin.
>
> The require isn't part of the rspec code...one of the guys I work with
> wrote the following rake task:
>
> require "rake"
> require "spec/rake/spectask"
>
> desc "Run all specs and dump to html"
> Spec::Rake::SpecTask.new('spec:html') do |t|
>   t.spec_opts = ["--format", "html"]
>   if ARGV.size > 1
>     t.out = ARGV[-1]
>   else
>     t.out = 'test.html'
>   end
>   t.fail_on_error = false
> end
>
> There might be another way to generate the HTML output with rake
> automatically, I'm not sure...
>
> Anyway I'm assuming it loads the gem version because the plugins
> haven't been loaded yet and the rspec plugin isn't yet part of the
> classpath.
>
> Does that make sense?

yep

>
> Pat
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list