【问题标题】:Rails 3 + Heroku: cannot load such file -- test/unit/testcase (LoadError)Rails 3 + Heroku:无法加载这样的文件——测试/单元/测试用例(LoadError)
【发布时间】:2012-11-29 12:22:22
【问题描述】:

在 heroku (heroku run console...) 中运行控制台时出现以下错误。应用程序运行没有问题,但我似乎无法运行控制台,因此在开发中我没有遇到这个问题。

/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- test/unit/testcase (LoadError)
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/test_case.rb:1:in `<top (required)>'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/console/app.rb:2:in `<top (required)>'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:304:in `initialize_console'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:152:in `load_console'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:27:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

这是我的 Gemfile:

source 'http://rubygems.org'
ruby '1.9.3'

gem 'rails', '3.2.9'

gem 'oauth', '~> 0.4.4'
gem 'twitter', '~> 1.4.1'
gem 'sendgrid'
gem 'koala'

gem 'therubyracer', '0.10.2'
gem 'execjs'

# Rails 3.1 - Asset Pipeline
gem 'json'

group :assets do
  gem 'sass-rails', "  >= 3.2.3"
  gem 'coffee-rails', ">= 3.2.1"
  gem 'uglifier', '>= 1.0.3'
  gem 'bootstrap-sass'
end

gem 'coffee-script'

gem 'jquery-rails'

gem "fog"
gem 'bootstrap-wysihtml5-rails', '0.3.1.10'

group :production do
  gem "heroku"
  gem 'pg', '0.13'
  gem 'newrelic_rpm'
  gem 'newrelic_api'
end

group :test do
  gem 'email_spec'
  gem "cucumber-rails"
  gem "rspec-rails"
  gem "capybara"
  gem 'culerity'
  gem "selenium-webdriver"
  gem "database_cleaner"
  gem 'factory_girl_rails'
end

group :development, :grades, :test do
  gem "launchy"
  gem "mysql2"
  gem "letter_opener"
  gem "pry"
  gem "rails-erd"
end

gem "airbrake"
gem "authlogic"
gem 'awesome_print'
gem 'cancan'
gem 'dalli'

#gem "oink"
gem 'validates_timeliness', '~> 3.0.2'
gem 'hpricot'
gem "ruby_parser"
gem "prawn_rails"
gem "thin"
gem "nested_form", :git => "git://github.com/ryanb/nested_form.git"
gem "meta_search"
gem "carrierwave"
gem "aws-s3"
gem "mini_magick"
gem 'will_paginate'
gem "spreadsheet"
gem "oauth-plugin", ">= 0.4.0.pre1"
gem 'flash_cookie_session'
gem 'haml-rails'
gem 'squeel'
gem 'rails_best_practices', :group => :development
gem 'simple_form'
gem 'taps', :group => :development
gem 'resque'
gem "audited-activerecord", "~> 3.0"
gem "lograge"
gem 'quiet_assets'
gem 'yajl-ruby', :require => "yajl"
gem 'switch_user'

我不知道为什么会出现此错误。有什么想法吗?谢谢

【问题讨论】:

  • 这里也一样。看起来 heroku 有一些问题。

标签: ruby-on-rails-3 heroku


【解决方案1】:

对于 Rails 3.1.12 和 Ruby 2.2.0,我必须添加

gem 'test-unit'

致我的Gemfile

【讨论】:

  • 同样的错误,不是在heroku上,但它仍然有效,谢谢
  • 不应该有另一种方法来消除这种依赖关系吗?如果不需要 test-unit gem 怎么办?
【解决方案2】:

删除.slugignore 文件中的test 对我有用。

【讨论】:

  • 这仅适用于某些系统。 Rails 3.2 期望 Test::Unit 在您运行 rails console 时可用。如下所述将test-unit 添加到您的Gemfile 将解决问题。
【解决方案3】:

显然 Heroku 已经改变了它解释 .slugignore 文件的方式。

就我而言,我在.slugignore 中有rpc 目录,它清除了我的应用程序所依赖的宝石之一的rpc 子目录,这导致了LoadError。我不确定 Heroku 是否有意做出这种改变。不管.slugignore 是否按预期工作,从.slugignore 中删除影响行应该可以解决这个问题。

附:我已经为此向 Heroku 提出了支持票。

更新:根据 Heroku 支持,对 .slugignore 解析进行了一些更改,以使其与 .gitignore 更加一致,并且它按预期工作。只删除顶级目录的正确方法是使用/rpc

【讨论】:

  • 嗨,我正在运行 rails 3.2.3 并获得与 fog 相同的 LoadError。我不使用.slugignore,但我仍然收到错误消息。这个问题的另一部分,我认为它没有正确读取我的staging.rb 环境文件,因为我在错误上方收到此通知:You did not specify how you would like Rails to report deprecation notices for your staging environment, please set config.active_support.deprecation to :log, :notify or :stderr at config/environments/staging.rb 但我确实将它指定为 :notify 在我的暂存文件中。任何帮助将不胜感激。
  • 这个(加上更新)比选择的答案更好。
  • .slugignore 的解析最近一直是一个移动的目标,尤其是今天。 .slugignore(以 # 符号开头的行)中的评论过去很好,但现在会导致部署完全崩溃,并出现不太有用的“无法识别的错误”。此外,今天早些时候被忽略的文件数量完全不准确,现在它似乎完全从输出中省略了。换句话说,在事情稳定之前,请谨慎使用 .slugignore。
  • 更正,被忽略的文件计数现在在输出中显示得更早(在推送之后),这似乎表明实现已被更改(再次)。
【解决方案4】:

从 .slugignore 中删除测试目录修复了问题

【讨论】:

    【解决方案5】:

    .slugignore删除测试目录

    【讨论】:

      【解决方案6】:

      我们今天也遇到了这个问题。我怀疑 Heroku 的 Ruby 构建包中一定发生了一些变化。

      对我们来说,prototype-rails 尝试加载 ActionView::TestCase 是个问题,而这又需要 test/unit/testcasepatch 非常简单,可以作为 fork 使用。

      如果您使用的是 Bundler,您可能需要以下内容:

      gem 'prototype-rails', :git => 'git://github.com/ennova/prototype-rails.git'
      

      【讨论】:

        【解决方案7】:

        我尝试禁用多线程(注释掉 config.threadsafe!),这似乎暂时有效,直到 heroku 齐心协力。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-13
          • 2020-01-02
          • 1970-01-01
          • 1970-01-01
          • 2015-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多