ruby-on-rails - matchers - rspec rails
Error al intentar ejecutar rspec: `require '': no se puede cargar dicho archivo-rails_helper(LoadError) (12)
A veces necesita ejecutar el comando rspec desde el directorio padre de Project
Estoy tratando de ejecutar rspec para Ruby on Rails.
Estoy ejecutando Rails 4.1.1.
He instalado la gema, he establecido una carpeta de especificaciones con algunas pruebas.
He creado un directorio a través de
$ rails g rspec:install
Intenté crear una base de datos de prueba a través de
$ rake db:test:prepare
pero arroja este mensaje de error:
WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test
schema automatically, see the release notes for details.
Así que terminé mirando esta publicación de desbordamiento de pila , y de las dos opciones, la que funcionó fue:
rake db:schema:load RAILS_ENV=test
Entonces, ahora necesito ejecutar rspec .
Cuando ejecuto
$ rspec spec
desde la línea de comando me sale este error:
/Users/myname/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/
kernel_require.rb:55:in `require'': cannot load such file -- rails_helper (LoadError)
¿Cómo resuelvo esto para poder comenzar a ejecutar pruebas?
De hecho, acabo de tener este error en los rieles 4 con rspec 3, pero en mi caso olvidé ejecutar el generador:
rails generate rspec:install
También tuve que eliminar las
warnings
de
.rspec
, como lo
dijo uno de los desarrolladores de rpsec
Hay algún problema con rspec V3. Pero en tu caso estás usando V2.
cambio
require ''rails_helper''
a
require ''spec_helper''
Otra descripción se encuentra aquí https://teamtreehouse.com/forum/problem-with-rspec
Para V3:
Si alguien usa rspec V3, se produce un error similar cuando el generador no se ejecuta. Entonces, antes de intentar cualquier cosa, ejecute el generador.
rails generate rspec:install
Si obtiene una gran lista de advertencia en su consola.
Luego debe eliminar
--warnings
del archivo
.rspec
.
Ninguna de estas sugerencias me funcionó en Rails 4.2.0 con rspec-rails 3.2.3.
En cambio, coloqué las siguientes dos líneas en la parte superior de mi archivo de especificaciones:
require ''rails_helper''
require ''spec_helper''
Ahora puedo ejecutar
rspec spec/features/my_spec.rb
.
Para alguien. Si tienes ese error cuando intentas probar un archivo específico. te puede gustar esto
$ bundle exec rspec ./spec/features/user_login_spec.rb
$ bundle exec rspec ./spec/models/user_login_spec.rb
Para las versiones más recientes (3.5), si necesita ejecutar el generador, los
rails generate rspec:install
no funciona para mí.
Solía:
rspec --init
Crea
.rspec
y
spec/spec_helper.rb
.
EDITAR: Por si acaso, descubrí que instalé rspec gem para ruby, no el de Rails, por lo que rspec: install no estaba disponible. Debería usar https://github.com/rspec/rspec-rails .
Para mí, el problema se debió a una versión diferente de "rspec-support" cargada y activada. Lo resolví anteponiendo un "paquete ejecutivo":
bundle exec rspec
Recibí el error que describiste al ejecutar una prueba de controlador. Sin embargo, cuando ejecuté una prueba de modelo, obtuve el verdadero error. terminó diciendo que se estaba produciendo el error porque mi base de datos no se migró. Solucioné el error ejecutando este comando ...
rake db:test:prepare
Recuerde siempre ejecutar el
rspec
o el
bundle exec rspec
desde la raíz de su proyecto.
Algo como:
bundle exec rspec spec/features/file_test_spec.rb
También puede tener su archivo nombrado incorrectamente.
Asegúrese de que termine en
_spec.rb
.
Había escrito mal mi archivo para terminar en
_soec.rb
y me estaba rascando la cabeza por un tiempo ...
Tuve el mismo error pero no había ninguna referencia a
rails_helper
ningún lado y ni siquiera estábamos usando rails.
Sin embargo, eventualmente descubrí que mi
~/.rspec
requería
rails_helper
(presumiblemente por crear la aplicación rails en el pasado) lo que estaba causando el problema ...
$ cat ~/.rspec
--color
--format documentation
--require spec_helper
--require rails_helper
La solución es tan simple como eliminar esa línea. Espero que esto ayude a alguien más a lidiar con el mismo problema.
Una posibilidad que funcionó para mí es asegurarme de que requiera
spec_helper
.
RubyMine puede requerir por defecto
rspec
y esto a veces puede conducir a este error.