tests test spec run rails how ruby-on-rails ruby testing

ruby-on-rails - test - rspec rails



Las pruebas de rieles no pueden encontrar test_helper (6)

Estoy intentando ejecutar pruebas individuales a través de ruby ​​test / unit / mytest.rb, pero siempre aparece el error "no existe el archivo para cargar - test_helper". Google trajo algunas sugerencias, pero ninguna de ellas funcionó para mí. Estoy ejecutando Rails 3.0, Ruby 1.9.2 (a través de RVM) en Ubuntu 10.10

Esto es lo que he intentado hasta ahora, cualquier sugerencia realmente apreciada.

  • Se cambió "require test_helper" a "require File.dirname ( FILE ) +" /../test_helper "" en test / unit / mytest_test.rb. Trae de vuelta "no hay tal archivo para cargar - test / unit /../ test_helper"
  • Intenté ejecutar rvm test / unit / mytest_test.rb igual que arriba
  • Intenté ejecutar ruby ​​-I test / unit / mytest_test.rb. No hay mensajes al terminal. Después de 5 minutos de espera de que algo suceda, ctrl + c salió de él.

Cualquier sugerencia muy apreciada - estoy perplejo.


He añadido lo siguiente a la parte superior de mis archivos de prueba.

require File.expand_path("../../test_helper", __FILE__)

Esto restaura el comportamiento anterior y permite que la llamada sea simplemente:

ruby test/unit/person_test.rb


Hoy mismo estuve luchando contra esto y no me gusta el gran requisito con todo el camino para archivar y esas cosas ...

En mi caso fue culpa de rakefile ..

Así que ahora se ve así:

require "bundler/gem_tasks" require "rake/testtask" Rake::TestTask.new do |t| t.libs << "lib" t.libs << "test" # here is the test_helper t.pattern = "test/**/*_test.rb" end task default: :test

Sé que es antiguo y que la respuesta está marcada como aceptada, pero quizás esto también ayude a alguien :) que tenga un buen día


Rails 1.9 ya no incluye el directorio actual en LOAD_PATH, lo que causa este problema. Tienes pocas opciones.

  1. llame a la prueba con la opción -I desde el directorio de la aplicación:

    ruby -I test test / funcional / test_foo.rb

y use un requerimiento sin ruta:

require "test_helper.rb"

  1. Utilice un camino completo en el requerimiento. Ya sea

    requiere ''nombre de ruta''

    requiere Pathname.new ( FILE ) .realpath.dirname.join (''/../ test_helper.rb'')

o

require (File.dirname(File.realdirpath(__FILE__)) + ''/../test_helper.rb'')


Si está creando una gema o un motor, la ejecución de la rake test en el directorio de la aplicación ficticia de prueba causará este error. Ejecutar la rake test en la raíz de la gema evitará esto.


Tal vez debería ejecutar sus casos de prueba de esta manera:

$ rake test

No es necesario cambiar la declaración de "requerimiento" del código generado si usa rake.

Probado con Ruby 1.9.3 y Rails 3.2.8


ruby 1.9.2 eliminó ".", el directorio actual, de la ruta de carga. Tengo que hacer esto para que funcione:

require ''test_helper''

y llámalo como

ruby -I. unit/person_test.rb