Подтвердить что ты не робот

Rails 3 + Heroku: невозможно загрузить такой файл - test/unit/testcase (LoadError)

У меня возникает следующая ошибка при запуске консоли в 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'

Я понятия не имею, почему я получаю эту ошибку. Есть предположения? Благодаря

4b9b3361

Ответ 1

Удаление test в файле .slugignore работает для меня.

Ответ 2

С Rails 3.1.12 и Ruby 2.2.0 мне пришлось добавить

gem 'test-unit'

на мой Gemfile.

Ответ 3

По-видимому, Heroku изменил способ интерпретации файла .slugignore.

В моем случае у меня был каталог rpc в .slugignore, и он уничтожил подкаталог rpc одного из драгоценных камней моего приложения, в зависимости от того, что привело к LoadError. Я не уверен, что Героку сделал это изменение намеренно. Независимо от того, работает ли .slugignore так, как ожидалось, удаление затронутых строк из .slugignore должно устранить проблему на данный момент.

P.S. Я поднял билет поддержки в Хероку.

ОБНОВЛЕНИЕ:. В соответствии с поддержкой Heroku были внесены некоторые изменения в синтаксический анализ .slugignore, чтобы сделать его более согласованным с .gitignore, и он работает по назначению. Правильный способ только удалить каталог верхнего уровня - вместо этого поставить /rpc.

Ответ 4

Удаление тестового каталога из .slugignore устраняет проблему

Ответ 5

Удалить тестовый каталог из .slugignore

Ответ 6

Мы также столкнулись с этой проблемой сегодня. Я подозреваю, что что-то должно было измениться в сборке сборки Heroku Ruby.

Для нас возникла проблема с прототипами-рельсами, пытающимися загрузить ActionView::TestCase, что в свою очередь требует test/unit/testcase. Патч довольно прост и доступен в виде fork.

Если вы используете Bundler, вам может понадобиться что-то вроде:

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

Ответ 7

Я попытался отключить многопоточность (закомментируйте config.threadsafe!) и, похоже, работает до тех пор, пока герою не начнет действовать вместе.