You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running "rake spec" with a Rails 3.2.7 app and RSpec 2.11.0, Rails.env is getting set to 'development', rather than defaulting to 'test'. The spec_helper has the ENV["RAILS_ENV"] ||= 'test' line right at the top (as generated by "rails g rspec:install") but it's too late at that point, that environment variable has already been set.
I will zip and attach (if possible) a sample Rails app to recreate the issue, but a bit of debugging shows that the RAILS_ENV environment variable is being set from the following before spec_helper is loaded:
Setting RAILS_ENV = development
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.7/lib/rails/tasks/misc.rake:4:in block in <top (required)>' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:incall'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:in block in execute' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:in execute' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:158:inblock in invoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:144:in invoke' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:116:ininvoke_task'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in block (2 levels) in top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:ineach'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in block in top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:instandard_exception_handling'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:88:in top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:66:inblock in run'
/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:in standard_exception_handling' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:63:inrun'
/Users/joe/.rbenv/versions/1.9.3-p194/bin/rake:32:in `
This is a solution to tests running in development environment as stated in issues rspec#70 and rspec#586.
Before Rails 3.2.7 ENV['RAILS_ENV'] ||= 'test' ran tests without issues in test env as discussed in rails/rails#7175 (comment).
Hi,
When running "rake spec" with a Rails 3.2.7 app and RSpec 2.11.0, Rails.env is getting set to 'development', rather than defaulting to 'test'. The spec_helper has the ENV["RAILS_ENV"] ||= 'test' line right at the top (as generated by "rails g rspec:install") but it's too late at that point, that environment variable has already been set.
I will zip and attach (if possible) a sample Rails app to recreate the issue, but a bit of debugging shows that the RAILS_ENV environment variable is being set from the following before spec_helper is loaded:
Setting RAILS_ENV = development
'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.7/lib/rails/tasks/misc.rake:4:in
block in <top (required)>' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:in
call'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:205:in
block in execute' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:200:in
execute' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:158:in
block in invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in
invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in
block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in
block in invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in
invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in
block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in
block in invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in
invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in
block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in
block in invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in
invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:176:in
block in invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:174:in
invoke_prerequisites' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:157:in
block in invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:151:in
invoke_with_call_chain'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/task.rb:144:in
invoke' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:116:in
invoke_task'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in
block (2 levels) in top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in
each'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:94:in
block in top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:in
standard_exception_handling'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:88:in
top_level' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:66:in
block in run'/Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:133:in
standard_exception_handling' /Users/joe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/application.rb:63:in
run'/Users/joe/.rbenv/versions/1.9.3-p194/bin/rake:32:in `
/Users/joe/.rbenv/versions/1.9.3-p194/bin/ruby -S rspec ./spec/rspec_test_env_spec.rb
Cheers,
Joe.
The text was updated successfully, but these errors were encountered: