Heim  >  Artikel  >  Backend-Entwicklung  >  Wie richten Sie das Arbeitsverzeichnis für Ihre Go-Tests ein?

Wie richten Sie das Arbeitsverzeichnis für Ihre Go-Tests ein?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 21:51:29714Durchsuche

How to Set the Working Directory for Your Go Tests?

Arbeitsverzeichnis in Go-Tests

In Go ist es üblich, Konfigurationsdateien im Arbeitsverzeichnis abzulegen und im Code darauf zu verweisen. Unit-Tests können diese Dateien jedoch möglicherweise nicht finden, wenn die Testumgebung nicht mit der Produktionsumgebung übereinstimmt.

Um ein Arbeitsverzeichnis für Ihre Go-Tests anzugeben, erkunden Sie die folgende Lösung:

Überlegen Sie Verwenden der Caller-Funktion aus dem Laufzeitpaket. Der Aufrufer übernimmt die aktuelle Testquelldatei und gibt deren Pfad zurück. Dieser Pfad kann verwendet werden, um das Arbeitsverzeichnis für den Test festzulegen:

<code class="go">package sample

import (
    "testing"
    "runtime"
    "os"
)

func TestGetDirectory(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    dir := filepath.Dir(filename)
    os.Chdir(dir)
    // Run tests using configuration files in the modified working directory
}</code>

Mit Caller können Sie den Pfad zur aktuellen Testquelldatei abrufen und das Arbeitsverzeichnis entsprechend festlegen. Dadurch können Ihre Tests Konfigurationsdateien im selben Verzeichnis wie den Testcode finden, wodurch die Fehler „Datei nicht gefunden“ behoben werden sollten.

Das obige ist der detaillierte Inhalt vonWie richten Sie das Arbeitsverzeichnis für Ihre Go-Tests 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