Testen verschachtelter Go-Module aus dem übergeordneten Verzeichnis
Das Test-Framework von Go, go test, ist für die Arbeit innerhalb eines einzelnen Go-Moduls konzipiert. Wenn Sie auf eine Ordnerstruktur wie die beschriebene stoßen, in der sich mehrere Go-Module in verschachtelten Unterverzeichnissen befinden, ist die Ausführung von go test aus dem Stammverzeichnis nicht erfolgreich.
Die aufgetretene Fehlermeldung „Keine Pakete zum Testen“ weist darauf hin go test konnte keine testbaren Pakete im aktuellen Verzeichnis oder seinem übergeordneten Verzeichnis finden. Dies liegt daran, dass go test erwartet, dass es mit einem einzelnen Modul funktioniert, das im aktuellen Verzeichnis oder seinem unmittelbar übergeordneten Verzeichnis verwurzelt ist.
Leider unterstützt go test derzeit nicht das direkte Testen verschachtelter Module. Um Tests in mehreren Unterverzeichnissen auszuführen, müssen Sie entweder ein Shell-Skript oder ein Makefile verwenden, um go test einzeln in jedem Unterverzeichnis auszuführen.
Zum Beispiel könnte ein Makefile verwendet werden, um die Unterverzeichnisse in einer Schleife zu durchlaufen, invoke Machen Sie einen Test und aggregieren Sie die Ergebnisse:
all-tests: for dir in one two; do \ make -C $$(cd $$dir && pwd) test; \ done
Alternativ könnte ein Shell-Skript geschrieben werden, um dieselbe Aufgabe auszuführen:
<code class="sh">#!/bin/sh for dir in one two; do ( cd "$dir" go test ) done</code>
In großen Projekten mit mehreren Modulen ein dedizierter Test Ein Skript oder ein Makefile wird oft verwendet, um den Testprozess zu automatisieren, wie im Beispiel in der Originalantwort zu sehen ist. Diese Skripte durchlaufen normalerweise eine Liste von Modulen und führen einen Go-Test für jedes Verzeichnis aus.
Das obige ist der detaillierte Inhalt vonWie teste ich verschachtelte Go-Module aus dem übergeordneten Verzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!