Andrew Premdas wrote:
Hi all,

I have a rails application whose specs run on about eight different boxes, but I can't get them to work on my integration server. The bit thats breaking concerns some modules that I have in spec/support/modules which are loaded by
the following line in spec_helper

    # get any macros etc
    Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}


one of these modules includes the other modules, and this generates the following stacktrace
     
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:440:in
 `load_missing_constant': uninitialized constant 
OrderSpecHelper::BasketSpecHelper (NameError)
     from 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:80:in
 `const_missing'
     from ./spec/helpers/../support/modules/order_spec_helper.rb:2
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`require'
     from 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:158:in
 `require'
the line causing this is order_spec_helper.rb:2

  module OrderSpecHelper
    include BasketSpecHelper
and BasketSpecHelper is defined in /support/modules/basket_spec_helper.rb


and is coded something like

  module BasketSpecHelper
    ...

I wonder if anyone has any ideas about the cause of this problem or some ideas about possible solutions

I've ran into similar issues. The problem in my case was the my integration server was running linux but our dev boxes were OSx. The issue was file ordering being different for the Dir::[] method on the OSes. Try adding a sort call like so:

Dir[File.dirname(__FILE__) + "/support/**/*.rb"].sort.each {|f| require f}

HTH,
Ben
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to