Heim > Artikel > Backend-Entwicklung > Wie lege ich ein Arbeitsverzeichnis für Go-Tests fest?
Go: So verwenden Sie ein bestimmtes Arbeitsverzeichnis in Tests
Beim Schreiben von Unit-Tests in Go ist es wichtig sicherzustellen, dass die Tests dies haben Zugriff auf die notwendigen Konfigurationsdateien. Das Standardverhalten von „go test“ geht davon aus, dass das Arbeitsverzeichnis das Projektstammverzeichnis ist. In bestimmten Szenarien können jedoch Probleme beim Auffinden von Dateien auftreten, da sich der Testcode in verschiedenen Verzeichnissen innerhalb des Projekts befindet.
Lösung: Festlegen des Arbeitsverzeichnisses für Tests
Um ein bestimmtes Arbeitsverzeichnis für Ihre Tests anzugeben, können Sie die folgenden Ansätze verwenden:
package main import ( "log" "os" "testing" ) func TestMain(m *testing.M) { // Change the working directory to the test directory. pwd, err := os.Getwd() if err != nil { log.Fatalf("os.Getwd() failed: %v", err) } testDir := pwd + "/test_directory" if err := os.Chdir(testDir); err != nil { log.Fatalf("os.Chdir() failed: %v", err) } // Run the tests. os.Exit(m.Run()) }
package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) testDir := filepath.Dir(filename) if err := os.Chdir(testDir); err != nil { t.Fatalf("os.Chdir() failed: %v", err) } // Run the rest of the test. }
Durch die Implementierung eines dieser Ansätze können Sie sicherstellen, dass Ihre Tests auf die erforderlichen Konfigurationsdateien zugreifen können, sodass sie erfolgreich ausgeführt werden können.
Das obige ist der detaillierte Inhalt vonWie lege ich ein Arbeitsverzeichnis für Go-Tests fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!