`require': No such file to load — test_helper (LoadError)

此生再无相见时 提交于 2020-01-13 09:56:06

问题


I get the following error when I run my Rails application in production mode, but when I run my app in development mode it works fine. Can I use any gems in production mode?

`require': No such file to load -- test_helper (LoadError)

The following is the full trace of the code:

 /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require': No such file to load -- test_helper (LoadError)
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `block in require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in `load_dependency'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require'
from /home/nyros/Documents/Projects/DFL/Working/DFL/app/controllers/quarterly_export_statement_test.rb:1:in `<top (required)>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `block in require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in `load_dependency'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:330:in `require_or_load'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:289:in `depend_on'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:207:in `require_dependency'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:465:in `block (2 levels) in eager_load!'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:464:in `each'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:464:in `block in eager_load!'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:462:in `each'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:462:in `eager_load!'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/engine.rb:347:in `eager_load!'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/application/finisher.rb:56:in `each'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/initializable.rb:30:in `instance_exec'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/initializable.rb:30:in `run'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/initializable.rb:55:in `block in run_initializers'  
from /home/nyros/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/tsort.rb:345:in `each'
from /home/nyros/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/tsort.rb:345:in `call'
from /home/nyros/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
from /home/nyros/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
from /home/nyros/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/initializable.rb:54:in `run_initializers'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/application.rb:215:in `initialize!'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /home/nyros/Documents/Projects/DFL/Working/DFL/config/environment.rb:5:in `<top (required)>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `block in require'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in `load_dependency'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require'
from /home/nyros/Documents/Projects/DFL/Working/DFL/config.ru:3:in `block in <main>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/builder.rb:55:in `instance_eval'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/builder.rb:55:in `initialize'
from /home/nyros/Documents/Projects/DFL/Working/DFL/config.ru:in `new'
from /home/nyros/Documents/Projects/DFL/Working/DFL/config.ru:in `<main>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/builder.rb:49:in `eval'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/builder.rb:49:in `new_from_string'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/builder.rb:40:in `parse_file'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/server.rb:277:in `build_app_and_options_from_config'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/server.rb:199:in `app'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/commands/server.rb:48:in `app'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/rack-1.5.5/lib/rack/server.rb:314:in `wrapped_app'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/commands/server.rb:75:in `start'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/commands.rb:76:in `block in <top (required)>'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/commands.rb:71:in `tap'
from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/railties-4.0.2/lib/rails/commands.rb:71:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'

回答1:


You have a test, quarterly_export_statement_test.rb, in your app/controllers directory.

In production, Rails loads all classes eagerly, so it attempts to load your test. Your test does require 'test_helper'. The test directory, which contains test_helper, isn't in the load path in the production environment (good!), so that require fails.

To fix the problem, move the test to the test directory where it belongs, which appears to be /home/nyros/Documents/Projects/DFL/Working/DFL/test.




回答2:


I got the same error while using: railstutorial.org Chapter 6. The offending file for me was app/helpers/application_helper_test.rb which had require 'test_helper' at the top.

I commented that line out, did

git add -A
git push
git push heroku

Then ran heroku run console, which worked :)



来源:https://stackoverflow.com/questions/35129533/require-no-such-file-to-load-test-helper-loaderror

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!