Go-Test im übergeordneten Verzeichnis mehrerer Go-Module ausführen
Wenn Sie auf eine Verzeichnisstruktur mit mehreren Go-Modulen in Unterverzeichnissen stoßen, führen Sie Go-Test aus aus dem übergeordneten Verzeichnis kann eine Herausforderung darstellen. Der folgende Codeausschnitt veranschaulicht dieses Problem:
/root /one go.mod go.sum main.go main_test.go /two go.mod go.sum main.go main_test.go
Das Ausführen von go test./... aus dem Stammverzeichnis führt zu folgendem Fehler:
go: warning: "./..." matched no packages no packages to test
Dies tritt auf, weil go test ist Speziell für den Betrieb mit einem einzelnen Modul entwickelt, das sich entweder im aktuellen Verzeichnis oder in seinem übergeordneten Verzeichnis befindet. Es unterstützt keine verschachtelten Module oder die Ausführung von Tests aus einem übergeordneten Verzeichnis mehrerer Module.
Um dieses Problem zu beheben, besteht eine Lösung darin, ein Shell-Skript zu erstellen oder ein Dienstprogramm wie „find“ zu verwenden, um zu jedem einzelnen Modul zu navigieren und „go“ auszuführen Testen Sie in diesen Verzeichnissen. Zum Beispiel:
cd /root/one go test . cd /root/two go test .
Alternativ können einige Projekte ein Makefile- oder test.sh-Skript verwenden, um diesen Prozess zu automatisieren. Beispielsweise durchläuft das test.sh-Skript im folgenden hypothetischen Projekt eine Liste von Modulen und führt go test für jedes Verzeichnis aus:
#!/bin/bash modules="one two three" for module in $modules; do cd $module go test . cd .. done
Das obige ist der detaillierte Inhalt vonWie führe ich „go test' im übergeordneten Verzeichnis mehrerer Go-Module aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!