Frage

Ich erstelle ein Juwel, das hat

  • mehrere Skripte im Verzeichnis bin
  • die utility-Klassen im lib-Verzeichnis
  • und mehrere tests im test-Verzeichnis
supertool
 bin
   toolA
   toolB
 lib
   supertool
     supertool.rb
     helper.rb
 test
   tc_main.rb
   tc_etc.rb

Nun, um die tests auszuführen, bevor ich überhaupt installieren Sie das Juwel, ich habe das folgende snippet an der Spitze meiner tests:

base = File.basename(Dir.pwd)
if base == 'test' || base =~ /supertool/
   Dir.chdir('..') if base == 'test'
   $LOAD_PATH.unshift(Dir.pwd + '/lib')
   Dir.chdir('test') if base =~ /supertool/
end

Dies scheint langweilig, obwohl, vor allem, wenn ich diese in die Skripte im Verzeichnis bin zu.Gibt es eine bessere Art und Weise der Einrichtung der Umgebung, so dass wir können test die Edelsteine, bevor Sie installiert werden?Ich bin sicher, dass es etwas einfaches ist, das kann ich einfach nicht finden.Ein einfacher link auf die richtige Stelle würde helfen, eine Menge :)

War es hilfreich?

Lösung

Ich bin mir nicht sicher, was Sie zu erreichen versuchen, mit diesem Skript.Es scheint nicht, etwas zu tun haben mit Edelsteinen...

Ist es so, dass können Sie laufen ruby tc_main.rb aus in das Verzeichnis test (oder ruby test/tc_main.rb aus dem base-dir), und legen Sie den Pfad zum laden richtig?Wenn ja, hier ist eine viel schönere Weg:

In Ihrem Verzeichnis test erstellen test_helper.rb Datei.In dieser Datei, stellen Sie diese

$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )

Und in alle Ihre test-Dateien, legen Sie die erste Zeile zu

require 'test_helper'

Wenn Sie Unterverzeichnisse in Ihrem test dir, dann werden die Dateien in diese Unterverzeichnisse können Sie einfach tun

require '../test_helper' 

Andere Tipps

Werfen Sie einen Blick auf Hacke Schmuckstück, es ist ein Helfer für andere Edelsteine.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top