On 21 October 2011 10:26, Matt Wynne <m...@mattwynne.net> wrote: > > On 18 Oct 2011, at 15:02, Jens-Christian Fischer wrote: > >> Hi there >> >> I have a weird situation. I have inherited a project in Rails 1.2.3 >> that has been upgraded to Rails 2.3.14 (and is running). I have >> installed Cucumber and Rspec to start to write features/tests for the >> new code that needs to be written. In my Gemfile, these Gems are >> loaded: >> >> group :test do >> gem 'rspec-rails', '~> 1.3.4', :require => 'spec/rails' >> gem 'rspec', '~> 1.3.2', :require => 'spec' >> gem "capybara", "0.3.9" >> gem "cucumber", "0.9.4" >> gem "cucumber-rails", "0.3.2" >> gem 'database_cleaner' >> end >> >> When I run the specs (bundle exec spec spec), I get error messages >> because the plugins of the application aren't loaded. >> >> Indeed, if I bundle the gems in "group :test, :development do ", then >> script/server and script/console fail to start as well because the >> plugins aren't loaded. >> >> Anyone seen this problem or can give me a hint of why the plugins >> suddenly aren't loaded (and where I should poke to find the cause)? >> >> thanks >> Jens-Christian > > My guess is that, because this is an older Rails app, it doesn't use Bundler > as you'd expect. In a Rails 3 app, your config/application.rb will have > something like this near the top: > > Bundler.require(:default, Rails.env) if defined?(Bundler) > > That's the magic that tells Bundler to require all the plugins for the test > environment when you run the tests. You'll need to stick something like that > into your Rails 1 app. > > One other problem you'll probably hit: Capybara won't work with Rails apps > that old, so you'll need to use Webrat for integration testing instead.
The op said the app had been upgraded to 2.3.14 which supports capybara (has rack). The Rails 2.3.12 that (for my sins) I'm currently working on has some code near the bottom of config/boot.rb to load bundler. class Rails::Boot def run load_initializer Rails::Initializer.class_eval do def load_gems @bundler_loaded ||= begin result = Bundler.require :default Bundler.require(Rails.env) unless Rails.env.test? result end end end Rails::Initializer.run(:set_load_path) end end HTH All best Andrew > > cheers, > Matt > > -- > Freelance programmer & coach > Author, http://pragprog.com/book/hwcuc/the-cucumber-book (with Aslak Hellesøy) > Founder, http://relishapp.com > +44(0)7974430184 | http://twitter.com/mattwynne > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > -- ------------------------ Andrew Premdas blog.andrew.premdas.org _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users