„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie richten Sie das Arbeitsverzeichnis für Ihre Go-Tests ein?

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

Veröffentlicht am 17.11.2024
Durchsuche:517

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 das Paketbeispiel test:

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
}

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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3