2010-12-13 14 views
21

Estoy usando RSpec para las pruebas y cuando salí del trabajo el viernes por la tarde, mis pruebas estaban pasando. Pero cuando fui a casa y sincronicé mi repositorio, las pruebas fallaron en mi computadora portátil. Ahora, de vuelta al trabajo, las pruebas aún están fallando. No crea que es mi código ya que ejecutar rspec por sí mismo devuelve un error y spork ni siquiera se iniciará. Cuando trato de iniciar Spork, aparece el siguiente mensaje de error:Obtención de un error constante no inicializado con RSpec. No tengo idea de qué lo está causando

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

¿Alguien sabe qué podría estar causando esto?

+3

¿alguna vez averiguar ¿Por qué recibiste este error? Ahora estoy experimentando esto yo mismo. Todo lo que hice fue requerir 'rspec/rails' – Despo

Respuesta

24

Me encontré con este problema. En el spec_helper.rb intente reemplazar:

require "rails" 

con

require "rails/all" 

funcionaba en mi situación.

+0

wtf. ¿Cómo resolviste esto? ¿Por qué está pasando esto? – Jwan622

+0

esto no solucionó mi problema en mi aplicación Rails 4.2.5 –

-1

Si no es una aplicación Rails y usted no quiere incluir todos los carriles, añadir esto a su spec_helper.rb:

require 'action_view' 
+0

Esto no funciona en una aplicación que no es de rieles. Falla con 'NameError: constante no inicializada ActionController :: TestCase'. Ver mi respuesta en su lugar. – thisismydesign

10

Es necesario inicializar el medio ambiente, añadir esta línea a spec_helper.rb :

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

guau, solo por ahora, intente encontrar una solución para este problema. –

+0

@ Зелёный respondió justo a tiempo :) –

+0

esto solucionó el síntoma en mi aplicación Rails 4.2.5 –

0

Puede encontrar este problema si usted está tratando de utilizar rspec-rails en un proyecto no raíles. En ese caso, el uso de require "rails/all" no es una opción, ya que había cosas requieren ActiveRecord dejándole con:

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

su lugar se puede solucionar este problema con:

require "action_controller/railtie"

Cuestiones relacionadas