Also schreibe ich ein paar rspec Tests und ich bin peinlich über meinen Mangel an Ruby Verständnis.Ruby erfordert 'Datei' und relative Position
Ich habe eine Struktur-Datei, die wie folgt aussieht:
- GUI_Tests/Tests/test_spec.rb
- GUI_Tests/windows_gui.rb
- GUI_Tests/upload_tool.rb
Wenn ich die Spezifikation für die Datei test_spec.rb ausführen möchte, muss die Datei upload_tool wie folgt enthalten sein:
spec -r ../upload_tool -fs test_spec.rb
Dann benötigt der upload_tool windows_gui.rb, etwa so:
require '../windows_gui'
Meine Frage ist, warum so ich windows_gui.rb relativ zu test_spec.rb zu verweisen haben (erfordert die ../) statt die Datei upload_tool.rb? Das fühlt sich falsch an, ich möchte das upload_tool.rb außerhalb des Kontexts der Testspezifikationen verwenden, was bedeutet, dass die Anforderungen jedes Mal geändert werden müssen.
Offensichtlich vermisse ich etwas, aber wenn ich nicht relativ zu der Testspezifikation referenziere, bekomme ich eine Datei nicht gefunden Fehler.
Entschuldigung, dass ich hier so unwissend bin, aber ich komme leer aus. Irgendwelche Gedanken geschätzt.
BB
Fühlen Sie sich nicht schlecht - ich finde den Umgang mit relative Wege eine der ärgerlichsten Dinge über Ruby. Ich habe es in [Was sind die Dinge, die Sie in der Rubin Sprache verbessert werden möchten] aufgeführt (http://stackoverflow.com/questions/855457/what-are-the-things-you-whould-like-improved-in) -the-ruby-language/3261063 # 3261063) –
August 2012 - Beachten Sie, dass dieser Beitrag jetzt zwei Jahre alt ist. Die meisten Leute sind jetzt auf 1.9.2. Siehe diesen Beitrag http://stackoverflow.com/questions/9345412/relative-file-path-in-rspec auch für die beste Lösung (Feb 2012) –