Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich die Caller-Funktion von Go, um das Arbeitsverzeichnis für Tests dynamisch festzulegen?

Wie verwende ich die Caller-Funktion von Go, um das Arbeitsverzeichnis für Tests dynamisch festzulegen?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 04:49:28968Durchsuche

How to Use Go's Caller Function to Dynamically Set Working Directory for Tests?

Verwenden des Aufrufers zum Angeben des Arbeitsverzeichnisses für Go-Tests

Beim Entwickeln von Tests für eine Go-Anwendung ist es wichtig, dass die Tests auf die erforderliche Konfiguration zugreifen können Dateien, die sich in einem bestimmten Verzeichnis innerhalb des Arbeitsverzeichnisses befinden. Standardmäßig sucht die Binärdatei im Pfad conf/*.conf unter dem Arbeitsverzeichnis nach diesen Dateien.

Wenn die Konfigurationsdateien beim direkten Ausführen des Befehls go test nicht gefunden werden können, kann ein alternativer Ansatz gewählt werden. Durch die Nutzung der Caller-Funktion können wir den Pfad zur aktuellen Testquelldatei festlegen.

Hier ist ein Codeausschnitt, der diese Technik demonstriert:

<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>

In diesem Beispiel rufen wir die Caller-Funktion auf um Informationen über die Testfunktion abzurufen, einschließlich ihres Dateinamens. Durch die Protokollierung des Dateinamens können wir den Speicherort der Testquelldatei überprüfen und diese Informationen verwenden, um das Arbeitsverzeichnis entsprechend festzulegen. Auf diese Weise können die Tests erfolgreich auf die erforderlichen Konfigurationsdateien zugreifen.

Das obige ist der detaillierte Inhalt vonWie verwende ich die Caller-Funktion von Go, um das Arbeitsverzeichnis für Tests dynamisch festzulegen?. 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