2010-10-16 12 views
25

Estoy intentando ejecutar pruebas individuales a través de ruby ​​test/unit/mytest.rb, pero siempre aparece el error "no such file to load - test_helper". Google mencionó algunas sugerencias, pero ninguna de ellas me funcionó. Estoy corriendo Rails 3.0, Ruby 1.9.2 (a través de RVM) en Ubuntu 10.10Pruebas de rieles no pueden encontrar test_helper

Esto es lo que he probado hasta ahora - cualquier sugerencia muy apreciado

  • cambia el "requieren test_helper" a "requiere File.dirname (FILE) + "/../test_helper" "en test/unit/mytest_test.rb. Me trae "no existe el fichero a cargar - test/unit /../ test_helper"
  • tratado de ejecutar la prueba RVM/unidad/mytest_test.rb Igual que el anterior
  • intentado correr rubí -I test/unit/mytest_test. rb. Sin mensajes a la terminal. Después de aproximadamente 5 minutos esperando que ocurra algo, ctrl + c'd fuera de él

Cualquier sugerencia muy apreciada - Estoy perplejo.

Respuesta

23

ruby ​​1.9.2 eliminado ".", El directorio actual, de la ruta de carga. Tengo que hacer esto para conseguir que funcione:

require 'test_helper' 

y llamarlo como:

ruby -I. unit/person_test.rb 
+2

Ach! Fantástico, muchas gracias. – PlankTon

+4

ruby ​​-Itest test/unit/person_test.rb. Referencia: http://guides.rubyonrails.org/testing.html#running-tests –

+0

La única diferencia es en qué directorio actual estás ... – DGM

12

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 la llamada a ser simplemente:

ruby test/unit/person_test.rb 
6

tal vez debería ejecutar los casos de prueba de esta manera:

$ rake test 

No hay necesidad de cambie la declaración "require" del código generado si usa rake.

Probado con Ruby 1.9.3 y los carriles 3.2.8

3

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

  1. llamada de la prueba con la opción -I de la aplicación dir:

    prueba prueba

    rubí -I/funcional/test_foo.rb

y utilizar un requerirá sin ruta:

require "test_helper.rb" 
  1. utilizan una ruta completa en el requerir. De cualquier

    requieren 'ruta'

    requieren Pathname.new (ARCHIVO) .realpath.dirname.join ('/ ../test_helper.rb ')

o

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

Si está creando una joya o un motor, corriendo rake test en el directorio de la aplicación maniquí de prueba hará que este error. Ejecutando rake test en la raíz de la gema evitará esto.

11

que estaba luchando contra esta cosa a mí mismo hoy y me gusta la gran requieren con la ruta entera para presentar y esas cosas ...

En mi caso fue culpa de Rakefile ..

por lo que ahora se ve como esto:

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é su edad y ha resuelto se marcó aceptado, pero tal vez esto también ayudará a alguien :) tienen un buen día

Cuestiones relacionadas