Heim >Backend-Entwicklung >Golang >Wie führe ich „go test' im übergeordneten Verzeichnis mehrerer Go-Module aus?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 03:09:29412Durchsuche

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

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!

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