Heim >Backend-Entwicklung >Golang >Wie stelle ich das Arbeitsverzeichnis für Go-Tests richtig ein?

Wie stelle ich das Arbeitsverzeichnis für Go-Tests richtig ein?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 03:57:02928Durchsuche

How to Correctly Set the Working Directory for Go Tests?

Beheben von Arbeitsverzeichnisproblemen in Go-Tests

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:

Nutzung der Caller-Funktion

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn