2010-10-16 19 views
25

Sto provando a eseguire test individuali tramite ruby ​​test/unit/mytest.rb, ma ottengo sempre un errore "no such to load - test_helper". Google ha portato alcuni suggerimenti, ma nessuno di loro ha funzionato per me. Io corro Rails 3.0, Ruby 1.9.2 (tramite RVM) su Ubuntu 10.10Test Rails non riescono a trovare test_helper

Ecco quello che ho provato finora - tutti i suggerimenti molto apprezzato

  • cambiato il "richiedono test_helper" a "richiedere File.dirname (FILE) + "/../test_helper" "in test/unit/mytest_test.rb. Si riporta "No such file da caricare - test/unit /../ test_helper"
  • provato in esecuzione di test RVM/unità/mytest_test.rb Come sopra
  • provato a fare funzionare rubino -I test/unit/mytest_test. rb. Nessun messaggio al terminale. Dopo circa 5 minuti in attesa che succeda qualcosa, ctrl + c'd fuori da esso

Qualsiasi suggerimento molto apprezzato - Sono perplesso.

risposta

23

ruby ​​1.9.2 rimosso ".", La directory corrente, dal percorso di caricamento. Devo fare questo per farlo funzionare:

require 'test_helper' 

e chiamare le cose come:

ruby -I. unit/person_test.rb 
+2

Ach! Fantastico - molte grazie. – PlankTon

+4

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

+0

L'unica differenza è la directory corrente in cui ci si trova ... – DGM

12

ho aggiunto quanto segue per la parte superiore dei miei file di test.

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

Questo ripristina il comportamento precedente e consente la chiamata ad essere semplicemente:

ruby test/unit/person_test.rb 
6

Forse si dovrebbe eseguire i casi di test in questo modo:

$ rake test 

Non v'è alcuna necessità di cambia l'istruzione "require" dal codice generato se usi rake.

Testato con Ruby e Rails 1.9.3 3.2.8

3

Rails 1.9 non include più il directory corrente nel LOAD_PATH, che causa questo problema. Hai alcune opzioni.

  1. chiamata il test con l'opzione -I dall'app dir:

    rubino -I test test/functional/test_foo.rb

e utilizzare un richiedono senza percorso:

require "test_helper.rb" 
  1. utilizzare un percorso completo nel bisogno. In entrambi i

    richiedono 'percorso'

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

o

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

Se si sta creando una gemma o un motore, in esecuzione rake test nella directory dell'applicazione manichino di prova causerà questo errore. L'esecuzione di rake test nella radice della gemma eviterà questo.

11

stavo combattendo questa cosa me oggi e mi piace il grande richiedono con tutto il percorso di file e roba del genere ...

Nel mio caso è stata colpa di Rakefile ..

così ora sembra che questo:

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 

so che il suo vecchio e ha segnato rispuose accettato, ma forse questo sarà anche aiutare qualcuno :) hanno una bella giornata

Problemi correlati