rails matchers ruby-on-rails command-line rspec

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.