2010-10-16 4 views
25

Ich versuche, einzelne Tests über Ruby test/unit/mytest.rb ausführen, aber ich bekomme immer eine Fehlermeldung "keine solche Datei zu laden - test_helper". Google hat ein paar Vorschläge gemacht, aber keiner von ihnen hat für mich funktioniert. Ich bin mit Rails 3.0 Ruby 1.9.2 (über RVM) auf Ubuntu 10.10Rails-Tests können test_helper nicht finden

Hier ist, was ich bisher ausprobiert habe - irgendwelche Vorschläge wirklich zu schätzen

  • Changed die "erfordern test_helper" auf „erforderlich File.dirname (DATEI) + "/../test_helper" "in test/unit/mytest_test.rb. Es bringt "keine solche Datei zu laden - Test/Einheit /../ test_helper" zurück
  • Versuchte läuft rvm test/unit/mytest_test.rb Wie oben
  • versucht mit Rubin -I test/unit/mytest_test. rb. Keine Nachrichten an das Terminal. Nach ca. 5 Minuten warten auf etwas zu passieren, Strg + C'd daraus

Alle Vorschläge sehr geschätzt - ich bin ratlos.

Antwort

23

Ruby 1.9.2 entfernt ".", Das aktuelle Verzeichnis, aus dem Ladepfad. Ich muss dies tun, um es die Arbeit zu:

require 'test_helper' 

und rufen Sie es mögen:

ruby -I. unit/person_test.rb 
+2

Ach haben! Fantastisch - vielen Dank. – PlankTon

+4

rubin -Itest test/unit/person_test.rb. Referenz: http://guides.rubyonrails.org/testing.html#running-tests –

+0

Der einzige Unterschied gibt es, in welchem ​​aktuellen Verzeichnis Sie sind ... – DGM

12

ich folgendes an die Spitze meiner Testdateien hinzugefügt haben.

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

Dies stellt das bisherige Verhalten und ermöglicht es dem Anruf einfach sein:

ruby test/unit/person_test.rb 
6

Vielleicht sollten Sie führen Sie Ihre Testfälle auf diese Weise:

$ rake test 

Es besteht keine Notwendigkeit zu Ändern Sie die "require" -Anweisung von generiertem Code, wenn Sie Rake verwenden.

mit Rubin Getestet 1.9.3 und Rails 3.2.8

3

Rails 1.9 nicht mehr das aktuelle Verzeichnis im LOAD_PATH enthält, die dieses Problem verursacht. Sie haben ein paar Optionen.

  1. Aufruf der Test mit der Option -I aus der App dir:

    ruby ​​-I test test/functional/test_foo.rb

und eine Verwendung ohne Pfad erforderlich:

require "test_helper.rb" 
  1. einen vollständigen Pfad in der erfordern verwenden. Entweder

    require 'Pfadname'

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

oder

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

Wenn Sie ein Juwel oder Motor schaffen, rake test im Test Dummy-Anwendungsverzeichnis ausgeführt wird diesen Fehler verursachen. Running rake test in der Wurzel des Edelsteins wird dies vermeiden.

11

Ich kämpfe das Ding ich heute und ich mag nicht die großen mit ganzem Weg benötigt Datei und so ...

In meinem Fall war es Fehler von Rakefile ..

so jetzt sieht es so aus dies:

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 

ich weiß, seine alten und gekennzeichnet antwort ist angenommen, aber vielleicht wird dies auch jemand helfen :) einen schönen Tag

Verwandte Themen