【问题标题】:`require': No such file to load -- test_helper (LoadError)`require': 没有要加载的文件 -- test_helper (LoadError)
【发布时间】:2016-05-09 20:17:06
【问题描述】:

当我在生产模式下运行我的 Rails 应用程序时出现以下错误,但是当我在开发模式下运行我的应用程序时它工作正常。 我可以在生产模式下使用任何宝石吗?

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

以下是完整的代码跟踪:

 /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>'

【问题讨论】:

  • 再分享几行堆栈跟踪
  • 为什么要尝试在production 环境中加载test_helper?您在哪个文件中收到该错误?
  • 您是否尝试在production 环境中运行测试?请发布回溯
  • 不,我没有在生产环境中运行任何测试 --@Vasfed
  • 请放完整的痕迹

标签: ruby-on-rails ruby ruby-on-rails-4 production-environment


【解决方案1】:

您的app/controllers 目录中有一个测试quarterly_export_statement_test.rb

在生产环境中,Rails 会急切地加载所有类,因此它会尝试加载您的测试。您的测试执行require 'test_helper'。包含test_helpertest 目录不在生产环境中的加载路径中(很好!),因此 require 失败。

要解决此问题,请将测试移至其所属的test 目录,该目录似乎是/home/nyros/Documents/Projects/DFL/Working/DFL/test

【讨论】:

  • 我有点被引擎路径部分迷住了,但在 OP 的情况下,你的答案 @dave 是正确的。一般来说,引擎不得低于 ./app,因为正如你所说,所有应用程序下的文件将在生产中急切地加载。
【解决方案2】:

我在使用时遇到了同样的错误:railstutorial.org 第 6 章。 对我来说有问题的文件是app/helpers/application_helper_test.rb 顶部有require 'test_helper'

我把那行注释掉了,没有

git add -A
git push
git push heroku

然后运行heroku run console,它成功了:)

【讨论】:

  • 同一本书同一章节我也面临同样的问题6,你完全救了我兄弟!谢谢!我在主分支上检查了作者的 github,在 helpers 文件夹中没有 application_helper_test.rb 文件,我很好奇是什么导致了这个问题? github.com/mhartl/sample_app_6th_ed/tree/main/app/helpers
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多