2012-12-11 12 views
18

Podczas uruchamiania konsoli w heroku pojawia się następujący błąd (heroku run console ...). Aplikacja działa bez problemów, ale wydaje mi się, że nie mogę uruchomić konsoli z tego powodu, aw trakcie rozwoju nie mam tego problemu.Szyny 3 + Heroku: nie można załadować takiego pliku - test/jednostka/testcase (LoadError)

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

To mój 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' 

Nie mam pojęcia, dlaczego ja dostaję ten błąd. jakieś pomysły? Dzięki

+3

To samo tutaj. Wygląda na to, że heroku ma pewne problemy. – scaryguy

Odpowiedz

6

Usuwanie test w pliku .slugignore pracuje dla mnie.

+1

To będzie działać tylko w niektórych systemach. Rails 3.2 oczekuje, że Test :: Unit będzie dostępny po uruchomieniu 'rails console'. Dodanie 'jednostki testowej' do twojego Gemfile'a, jak wspomniano poniżej, naprawi problem. – Schneems

-2

Próbowałem wyłączenie wielowątkowość (komentarz out config.threadsafe!) I że wydaje się działać na razie, aż Heroku razem.

0

Również dzisiaj napotkaliśmy ten problem. Podejrzewam, że coś musiało się zmienić w pakiecie budującym Ruby Heroku.

Dla nas był to problem z prototypowymi szynami próbującymi załadować ActionView::TestCase, co z kolei wymaga test/unit/testcase. Model patch jest bardzo prosty i jest dostępny jako fork.

Jeśli używasz Bundler, może chcesz coś takiego:

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

Usuwanie testową dir z .slugignore stała się kwestią

1

Remove Test reż od .slugignore

6

Widocznie Heroku zmienił sposób, w jaki interpretuje plik .slugignore.

W moim przypadku, miałem rpc katalogu w .slugignore i wymazane rpcpodkatalogu jednego z klejnotów moja aplikacja jest w zależności, co spowodowało LoadError. Nie jestem pewien, czy Heroku dokonał tej zmiany celowo. Bez względu na to, czy .slugignore działa zgodnie z oczekiwaniami, usunięcie problemu z linii .slugignore powinno rozwiązać problem na teraz.

P.S. W związku z tym podniosłem bilet wsparcia do Heroku.

UPDATE: Zgodnie wsparcia Heroku istniały pewne zmiany do .slugignore parsowania aby uczynić go bardziej zgodny z .gitignore, i działa zgodnie z przeznaczeniem. Prawidłowy sposób, aby usunąć tylko katalog najwyższego poziomu, umieszcza zamiast niego /rpc.

+0

Witam, używam szyn 3.2.3 i otrzymuję ten sam 'LoadError' z' fog'. Nie używam '.slugignore', ale nadal dostaję błąd. Inna część tego problemu, nie sądzę, że odczytuje on mój plik środowiska 'staging.rb', ponieważ otrzymuję to powiadomienie tuż nad błędem:' Nie określiłeś, w jaki sposób Railsy mają zgłaszać powiadomienia o wycofaniu w twoim środowisku pomostowym , proszę ustawić config.active_support.deprecation na: log,: notify lub: stderr w config/environments/staging.rb' ALE określam to, aby: powiadamiało w moim pliku pomostowym. Każda pomoc będzie doceniona. – Tonys

+0

Jakieś komentarze od Heroku? – dolzenko

+0

Ta (z dodatkiem aktualizacji) jest lepszą odpowiedzią niż wybrana. – blim8183

55

Z Rails Ruby 2.2.0 i 3.1.12 musiałem dodać

gem 'test-unit' 

do mojego Gemfile.

+2

Dzięki, to zadziałało dla mnie z Railsami 3.2.21. – powers

+0

Dzięki, pracował dla mnie również '' Rails 3.2.21' + 'Ruby 2.2.0' –

+0

Ten sam błąd, nie na heroku, ale i tak działa, dzięki – vincentp

Powiązane problemy