2010-12-13 71 views
21

J'utilise RSpec pour tester et quand je suis parti travailler vendredi après-midi, mes tests passaient. Mais quand je suis allé à la maison et synchronisé mon dépôt, les tests ont échoué sur mon ordinateur portable. Maintenant au travail, les tests échouent encore. Ne croyez pas que c'est mon code car lancer rspec lui-même renvoie une erreur et le démarrage ne démarre même pas. Lorsque je tente de démarrer Spork, je reçois le message d'erreur suivant:Obtention d'une erreur constante non initialisée avec RSpec. Je ne sais pas quelle est la cause

Using RSpec 
Loading Spork.prefork block... 
uninitialized constant ActionView::Template::Handlers::ERB::ENCODING_FLAG (NameError) 
/home/jeff/.rvm/gems/[email protected]/gems/rspec-core-2.2.1/lib/rspec/core/backward_compatibility.rb:20:in `const_missing' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers/erb.rb:85:in `<class:ERB>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers/erb.rb:70:in `<module:Handlers>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers/erb.rb:28:in `<class:Template>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers/erb.rb:27:in `<module:ActionView>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers/erb.rb:6:in `<top (required)>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/handlers.rb:10:in `extended' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template.rb:99:in `extend' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template.rb:99:in `<class:Template>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template.rb:8:in `<module:ActionView>' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template.rb:6:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:29:in `require' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/template/resolver.rb:3:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:29:in `require' 
/home/jeff/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_view/testing/resolvers.rb:1:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:29:in `require' 
/home/jeff/.rvm/gems/[email protected]/gems/rspec-rails-2.2.1/lib/rspec/rails/view_rendering.rb:1:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:29:in `require' 
<internal:lib/rubygems/custom_require>:29:in `require' 
/home/jeff/.rvm/gems/[email protected]/gems/rspec-rails-2.2.1/lib/rspec/rails.rb:9:in `<top (required)>' 
<internal:lib/rubygems/custom_require>:33:in `require' 
<internal:lib/rubygems/custom_require>:33:in `rescue in require' 
<internal:lib/rubygems/custom_require>:29:in `require' 
/home/jeff/Projects/Rails/vahsfbhistory/spec/spec_helper.rb:10:in `block in <top (required)>' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork.rb:23:in `prefork' 
/home/jeff/Projects/Rails/vahsfbhistory/spec/spec_helper.rb:5:in `<top (required)>' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/test_framework.rb:138:in `load' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/test_framework.rb:138:in `block (2 levels) in preload' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/app_framework.rb:64:in `preload' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/test_framework.rb:134:in `block in preload' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork.rb:67:in `exec_prefork' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/test_framework.rb:120:in `preload' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/run_strategy/forking.rb:25:in `preload' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/runner.rb:74:in `run' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/lib/spork/runner.rb:9:in `run' 
/home/jeff/.rvm/gems/[email protected]/gems/spork-0.8.4/bin/spork:10:in `<top (required)>' 
/home/jeff/.rvm/gems/[email protected]/bin/spork:19:in `load' 
/home/jeff/.rvm/gems/[email protected]/bin/spork:19:in `<main>' 

Quelqu'un sait ce qui pourrait être la cause?

+3

vous ne jamais savoir pourquoi vous receviez cette erreur? Je suis en train de vivre ça moi-même. Tout ce que j'ai fait était de demander 'rspec/rails' – Despo

Répondre

24

J'ai rencontré ce problème. Dans le spec_helper.rb essayez de remplacer:

require "rails" 

avec

require "rails/all" 

A travaillé dans ma situation.

+0

wtf. Comment avez-vous compris cela? Pourquoi cela arrive-t-il? – Jwan622

+0

cela n'a pas résolu mon problème sur mon application Rails 4.2.5 –

-1

Si ce n'est pas une application Rails et que vous ne voulez pas inclure tous Rails, ajouter ceci à votre spec_helper.rb:

require 'action_view' 
+0

Cela ne fonctionne pas sur une application non-rails. Échec avec 'NameError: constante non initialisée ActionController :: TestCase'. Voyez ma réponse à la place. – thisismydesign

10

Vous devez initialiser l'environnement, ajoutez cette ligne à spec_helper.rb :

require File.expand_path("../../config/environment", __FILE__) 
+0

wow, juste pour l'instant essayer de trouver une solution à ce problème. –

+0

@ Зелёный répondu juste à temps :) –

+0

ce DID résoudre le symptôme sur mon application Rails 4.2.5 –

0

vous pouvez rencontrer ce problème si vous essayez d'utiliser rspec-rails dans un projet non-rails. Dans ce cas, l'utilisation require "rails/all" n'est pas une option, car elle avait besoin des choses ActiveRecord vous laissant avec:

ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found.

Au lieu de cela, vous pouvez résoudre ce problème avec:

require "action_controller/railtie"