[rspec-users] Adding custom directories in Rails app breaks RSpec testing

dyba dyba.ruby at gmail.com
Sat May 29 22:08:16 EDT 2010


Hi:

I'm trying to find out why is it when I change the Rails directory
structure like so (app/controllers/physical/) does RSpec no longer
work? I moved all my controller files to app/controllers/physical.
Everything works fine when I run the server. But now I can't test
anymore: I get this message when I type the script/spec command:

Paintdexter at R0M3 Sat May 29 19:05 >_ script/spec spec/controllers/
physical/home_controller_spec.rb
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/
dependencies.rb:426:in `load_missing_constant': Expected /Users/
Paintdexter/Ruby/atlas/app/controllers/physical/
application_controller.rb to define ApplicationController (LoadError)
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:80:in `const_missing'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:92:in `const_missing'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:437:in `load_missing_constant'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:80:in `const_missing'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:437:in `load_missing_constant'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:80:in `const_missing'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:437:in `load_missing_constant'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:80:in `const_missing'
	from /Library/Ruby/Gems/1.8/gems/rspec-rails-1.3.2/lib/spec/rails/
example/helper_example_group.rb:4
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`require'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:158:in `require'
	from /Library/Ruby/Gems/1.8/gems/rspec-rails-1.3.2/lib/spec/rails/
example.rb:9
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`require'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:158:in `require'
	from /Library/Ruby/Gems/1.8/gems/rspec-rails-1.3.2/lib/spec/rails.rb:
17
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`require'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:158:in `require'
	from /Users/Paintdexter/Ruby/atlas/spec/spec_helper.rb:6
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`require'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:158:in `require'
	from ./spec/controllers/physical/home_controller_spec.rb:1
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:147:in
`load_without_new_constant_marking'
	from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/
active_support/dependencies.rb:147:in `load'
	from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/runner/
example_group_runner.rb:15:in `load_files'
	from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/runner/
example_group_runner.rb:14:in `each'
	from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/runner/
example_group_runner.rb:14:in `load_files'
	from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/runner/
options.rb:133:in `run_examples'
	from /Library/Ruby/Gems/1.8/gems/rspec-1.3.0/lib/spec/runner/
command_line.rb:9:in `run'
	from script/spec:10
Paintdexter at R0M3 Sat May 29 19:06 >_

I made sure to add the custom directories in the config/environment.rb
file:

 ##
 # Adding load paths for my custom directories
##
config.load_paths += %W(
#{RAILS_ROOT}/app/models/logical
#{RAILS_ROOT}/app/controllers/physical
#{RAILS_ROOT}/app/controllers/service
#{RAILS_ROOT}/app/views/physical
#{RAILS_ROOT}/spec/controllers/physical
#{RAILS_ROOT}/spec/views/physical
)

This however doesn't work. How can I make RSpec aware that the Rails
app directory structure has changed?


More information about the rspec-users mailing list