[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
lenny at aps.org
Fri Oct 21 16:18:05 EDT 2011
On Oct 21, 2011, at 11:05 AM, Andrew Premdas wrote:
> On 21 October 2011 10:26, Matt Wynne <matt at 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
>>> 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'
>>> 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)?
>> 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
> class Rails::Boot
> def run
> Rails::Initializer.class_eval do
> def load_gems
> @bundler_loaded ||= begin
> result = Bundler.require :default
> Bundler.require(Rails.env) unless Rails.env.test?
If Bundler is the issue, you have to have followed these instructions(probably where the snippet above came from) to get things set up with Rails 2.3
> All best
>> 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 at rubyforge.org
> Andrew Premdas
> rspec-users mailing list
> rspec-users at rubyforge.org
More information about the rspec-users