Jens-Christian Fischer
2011-Oct-18 14:02 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
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
Matt Wynne
2011-Oct-21 09:26 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
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-ChristianMy 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. 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
Andrew Premdas
2011-Oct-21 15:05 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
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 >> 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- ------------------------ Andrew Premdas blog.andrew.premdas.org
Lenny Marks
2011-Oct-21 20:18 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
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 >>> 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 >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 http://gembundler.com/rails23.html -lenny> > 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 at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > > > -- > ------------------------ > Andrew Premdas > blog.andrew.premdas.org > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
Jens-Christian Fischer
2011-Oct-24 08:12 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
Thanks for all the hints. I''m pretty sure however, that Bundler ist NOT the issue. Both boot.rb and config/preinitializer.rb are as expected and the app itself starts fine both with script/server or script/console. However, as soon as rspec is loaded (when running the tests), then the plugins aren''t loaded anymore. A wild guess is that Rspec causes the loading of plugins to fail in mysterious ways, but I don''t enough of either the Rails 2.3 booting process nor the Rspec magic to pinpoint the location where I should put my finger on. Any further ideas that I could look into? thanks jc On 21 Okt., 22:18, Lenny Marks <le... at aps.org> wrote:> On Oct 21, 2011, at 11:05 AM, Andrew Premdas wrote: > > > > > > > > > > > On 21 October 2011 10:26, Matt Wynne <m... 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 > >>> 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 > > 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 > > http://gembundler.com/rails23.html > > -lenny > > > > > > > > > > > > > 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-us... at rubyforge.org > >>http://rubyforge.org/mailman/listinfo/rspec-users > > > -- > > ------------------------ > > Andrew Premdas > > blog.andrew.premdas.org > > _______________________________________________ > > rspec-users mailing list > > rspec-us... at rubyforge.org > >http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
Andrew Premdas
2011-Oct-24 09:57 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
On 24 October 2011 09:12, Jens-Christian Fischer <jcfischer at gmail.com> wrote:> Thanks for all the hints. I''m pretty sure however, that Bundler ist > NOT the issue. Both boot.rb and config/preinitializer.rb are as > expected and the app itself starts fine both with script/server or > script/console. > > However, as soon as rspec is loaded (when running the tests), then the > plugins aren''t loaded anymore. A wild guess is that Rspec causes the > loading of plugins to fail in mysterious ways, but I don''t enough of > either the Rails 2.3 booting process nor the Rspec magic to pinpoint > the location where I should put my finger on. > > Any further ideas that I could look into? >Its far more likely that your application is wrong than RSpec is wrong, especially with an effect that is so large. You don''t really know much about your application (you stated that you''ve only just inherited it. Something odd is going on with bundler (you stated that in your original post. Best advice I can give is question your assumptions and assume you have made a mistake - generally when something doesn''t work its usually my fault :) After that creating a new rails project with the same gemset (ideally using RVM) might help isolate the issue. Also publishing the error messages in a gist, or even publishing the whole project on Github might help. All best Andrew> thanks > jc > > On 21 Okt., 22:18, Lenny Marks <le... at aps.org> wrote: >> On Oct 21, 2011, at 11:05 AM, Andrew Premdas wrote: >> >> >> >> >> >> >> >> >> >> > On 21 October 2011 10:26, Matt Wynne <m... 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 >> >>> 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 >> >> 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 >> >> http://gembundler.com/rails23.html >> >> -lenny >> >> >> >> >> >> >> >> >> >> >> >> > 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-us... at rubyforge.org >> >>http://rubyforge.org/mailman/listinfo/rspec-users >> >> > -- >> > ------------------------ >> > Andrew Premdas >> > blog.andrew.premdas.org >> > _______________________________________________ >> > rspec-users mailing list >> > rspec-us... at rubyforge.org >> >http://rubyforge.org/mailman/listinfo/rspec-users >> >> _______________________________________________ >> rspec-users mailing list >> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- ------------------------ Andrew Premdas blog.andrew.premdas.org
Jens-Christian Fischer
2011-Oct-26 15:09 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
Ok - I have created a brand new Rails 2.3.14 app, made it bundler aware (as of http://gembundler.com/rails23.html) and installed one plugin. This reproduces the problem described above. Here''s the app: (it does nothing, the only change is the use of the "history" DSL keyword in application controller. History is coming from the "rails_history" plugin): https://github.com/jcfischer/rails2314_rspec_plugin If I enable rspec in Gemfile for the development environment, this is what I get: ? ?l_p_test git:(master) ? script/server=> Booting WEBrick=> Rails 2.3.14 application starting on http://0.0.0.0:3000NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.Gem.source_index called from /Users/jcf/.rvm/ gems/ruby-1.8.7-p352 at bla/gems/rails-2.3.14/lib/rails/gem_dependency.rb: 21./Users/jcf/dev/work/LENA/l_p_test/app/controllers/ application_controller.rb:13: undefined method `history'' for ApplicationController:Class (NoMethodError) from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:406:in `load_without_new_constant_marking'' from /Users/ jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/ active_support/dependencies.rb:406:in `load_file'' from /Users/jcf/.rvm/ gems/ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:547:in `new_constants_in'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:405:in `load_file'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:285:in `require_or_load'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:250:in `depend_on'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/activesupport-2.3.14/lib/active_support/ dependencies.rb:162:in `require_dependency'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at bla/gems/rspec-rails-1.3.4/lib/spec/rails.rb:2 from / Users/jcf/.rvm/gems/ruby-1.8.7-p352 at global/gems/bundler-1.0.18/lib/ bundler/runtime.rb:68:in `require'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at global/gems/bundler-1.0.18/lib/bundler/runtime.rb: 68:in `require'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at global/gems/ bundler-1.0.18/lib/bundler/runtime.rb:66:in `each'' from /Users/ jcf/.rvm/gems/ruby-1.8.7-p352 at global/gems/bundler-1.0.18/lib/bundler/ runtime.rb:66:in `require'' from /Users/jcf/.rvm/gems/ruby-1.8.7- p352 at global/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `each'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at global/gems/bundler-1.0.18/ lib/bundler/runtime.rb:55:in `require'' from /Users/jcf/.rvm/gems/ ruby-1.8.7-p352 at global/gems/bundler-1.0.18/lib/bundler.rb:120:in `require'' from /Users/jcf/dev/work/LENA/l_p_test/config/boot.rb:119:in `load_gems'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/ rails-2.3.14/lib/initializer.rb:164:in `process'' from /Users/jcf/.rvm/ gems/ruby-1.8.7-p352 at bla/gems/rails-2.3.14/lib/initializer.rb:113:in `send'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/rails-2.3.14/ lib/initializer.rb:113:in `run'' from /Users/jcf/dev/work/LENA/l_p_test/ config/environment.rb:9 from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/ gems/activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `require'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/ activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `require'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/ activesupport-2.3.14/lib/active_support/dependencies.rb:547:in `new_constants_in'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/ activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `require'' from /Users/jcf/.rvm/gems/ruby-1.8.7-p352 at bla/gems/ rails-2.3.14/lib/commands/server.rb:84 from script/server:3:in `require'' from script/server:3 If rspec is disabled, then the server starts fine So, while I understand the "your application is wrong" approach, I think I have just successfully eliminated that possibility. cheersjc On 24 Okt., 11:57, Andrew Premdas <aprem... at gmail.com> wrote:> On 24 October 2011 09:12, Jens-Christian Fischer <jcfisc... at gmail.com> wrote:> Thanks for all the hints. I''m pretty sure however, that Bundler ist > > NOT the issue. Both boot.rb and config/preinitializer.rb are as > > expected and the app itself starts fine both with script/server or > > script/console. > > > However, as soon as rspec is loaded (when running the tests), then the > > plugins aren''t loaded anymore. A wild guess is that Rspec causes the > > loading of plugins to fail in mysterious ways, but I don''t enough of > > either the Rails 2.3 booting process nor the Rspec magic to pinpoint > > the location where I should put my finger on. > > > Any further ideas that I could look into? > > Its far more likely that your application is wrong than RSpec is > wrong, especially with an effect that is so large. > You don''t really know much about your application (you stated that > you''ve only just inherited it. > Something odd is going on with bundler (you stated that in your original post. > > Best advice I can give is question your assumptions and assume you > have made a mistake - generally when something doesn''t work its > usually my fault :) After that creating a new rails project with the > same gemset (ideally using RVM) might help isolate the issue. Also > publishing the error messages in a gist, or even publishing the whole > project on Github might help. > > All best > > Andrew > > > > > > > > > > > thanks > > jc > > > On 21 Okt., 22:18, Lenny Marks <le... at aps.org> wrote: > >> On Oct 21, 2011, at 11:05 AM, Andrew Premdas wrote: > > >> > On 21 October 2011 10:26, Matt Wynne <m... 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 > >> >>> 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 > > >> 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 > > >>http://gembundler.com/rails23.html > > >> -lenny > > >> > All best > > >> > Andrew > > >> >> cheers, > >> >> Matt > > >> >> -- > >> >> Freelance programmer & coach > >> >> Author,http://pragprog.com/book/hwcuc/the-cucumber-book(withAslak Helles?y) > >> >> Founder,http://relishapp.com > >> >> +44(0)7974430184 |http://twitter.com/mattwynne > > >> >> _______________________________________________ > >> >> rspec-users mailing list > >> >> rspec-us... at rubyforge.org > >> >>http://rubyforge.org/mailman/listinfo/rspec-users > > >> > -- > >> > ------------------------ > >> > Andrew Premdas > >> > blog.andrew.premdas.org > >> > _______________________________________________ > >> > rspec-users mailing list > >> > rspec-us... at rubyforge.org > >> >http://rubyforge.org/mailman/listinfo/rspec-users > > >> _______________________________________________ > >> rspec-users mailing list > >> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > > rspec-users mailing list > > rspec-us... at rubyforge.org > >http://rubyforge.org/mailman/listinfo/rspec-users > > -- > ------------------------ > Andrew Premdas > blog.andrew.premdas.org > _______________________________________________ > rspec-users mailing list > rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
Jens-Christian Fischer
2011-Oct-26 15:16 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
Ha - I think I found the problem: In my Gemfile I had: group :test, :cucumber do # , :development (till we work out why plugins don''t load with rspec) 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 removing the :require => ... lines seemed to fix the problem So you were right - it was all my fault ;) thanks for prodding me in the right direction. cheers jc
Andrew Premdas
2011-Oct-28 19:10 UTC
[rspec-users] rspec 1.3.2, Rails 2.3.14 - plugins not loading
On 26 October 2011 16:16, Jens-Christian Fischer <jcfischer at gmail.com> wrote:> Ha - I think I found the problem: > > In my Gemfile I had: > > group :test, :cucumber do # , :development (till we work out why > plugins don''t load with rspec) > ?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 > > removing the :require => ... lines seemed to fix the problem > > So you were right - it was all my fault ;) > > thanks for prodding me in the right direction. > > cheers > jcyour welcome all best Andrew> _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- ------------------------ Andrew Premdas blog.andrew.premdas.org
Seemingly Similar Threads
- having some issues with factory_girl and bundler...
- cannot load such file -- openssl (again)
- Can't find the PostgreSQL client library (libpq)
- stale records with integration testing?
- For Your Own Info: Rails 2.3.2 is incompatible with Cucumber (0.8.5), Capybara (0.3.9) and Selenium-webdriver (0.0.17)