In Go kann es beim Unit-Testen zu Herausforderungen kommen, wenn auf Konfigurationsdateien zugegriffen wird, die sich in einem bestimmten Arbeitsverzeichnis befinden. Dieser Artikel befasst sich mit einem solchen Problem und untersucht, wie der Befehl go test so gesteuert werden kann, dass er ein gewünschtes Arbeitsverzeichnis für die Testausführung verwendet.
Stellen Sie sich die folgende Situation vor: Die Komponententests einer Go-Anwendung basieren auf Konfigurationsdateien, die in conf/* vorhanden sind. .conf. Bei der Ausführung dieser Tests schlagen sie jedoch fehl, da die Binärdatei die Konfigurationsdateien nicht finden kann.
Um dieses Problem zu beheben, erscheint es möglicherweise intuitiv, zu dem Verzeichnis zu navigieren, das das Verzeichnis conf/ enthält, und go test auszuführen. Dieser Ansatz greift jedoch oft zu kurz. Um sicherzustellen, dass Tests im richtigen Arbeitsverzeichnis ausgeführt werden, bietet Go bestimmte Mechanismen:
Das Laufzeitpaket in Go stellt eine Funktion namens Caller bereit, die Informationen über die Quelle abrufen kann Datei, die es aufgerufen hat. Zu diesen Informationen gehören der Dateiname und der Pfad:
<code class="go">package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) t.Logf("Current test filename: %s", filename) }</code>
Mit dieser Technik können wir das Verzeichnis finden, das die Konfigurationsdateien enthält, und diese Informationen an go test übergeben, um das Arbeitsverzeichnis für die Testausführung festzulegen.
Das obige ist der detaillierte Inhalt vonWie stelle ich das Arbeitsverzeichnis für Go-Tests richtig ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!