Wie führe ich „go test' im übergeordneten Verzeichnis mehrerer Go-Module aus?

Barbara Streisand
Freigeben: 2024-10-29 03:09:29
Original
304 Leute haben es durchsucht

How to Run `go test` in the Parent Directory of Multiple Go Modules?

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
Nach dem Login kopieren

Das Ausführen von go test./... aus dem Stammverzeichnis führt zu folgendem Fehler:

go: warning: "./..." matched no packages
no packages to test
Nach dem Login kopieren

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 .
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!