Heim >Backend-Entwicklung >Golang >Wie kann ich Go-Tests selektiv ausführen und bestimmte Pakete oder Verzeichnisse ausschließen?

Wie kann ich Go-Tests selektiv ausführen und bestimmte Pakete oder Verzeichnisse ausschließen?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 21:17:14311Durchsuche

How Can I Selectively Run Go Tests and Exclude Specific Packages or Directories?

Selektives Testen: Pakete in Go überspringen

Beim Ausführen von Testsuiten kann es vorkommen, dass Sie bestimmte Pakete oder Verzeichnisse ausschließen möchten Testen. In Go ist es möglich, die zu testenden Pakete direkt über die Befehlszeile anzugeben.

Angenommen, Sie haben eine Projektstruktur wie diese:

mypackage
mypackage/net
mypackage/other
mypackage/scripts

Um nur das mypackage zu testen , mypackage/other und mypackage/net-Pakete unter Ausschluss von mypackage/scripts können Sie Folgendes verwenden Befehl:

go test import/path/to/mypackage import/path/to/mypackage/other import/path/to/mypackage/net

Alternativ können Sie, wenn Ihre bevorzugte Shell-Syntax dies zulässt, die folgende Abkürzung verwenden:

go test import/path/to/mypackage{,/other,/net}

Ein anderer Ansatz besteht darin, go list zu verwenden, das eine Liste von Paketen zurückgibt Übereinstimmung mit einem vorgegebenen Muster. Sie können diese Ausgabe an einen Befehl wie grep weiterleiten und die Pakete herausfiltern, die Sie nicht testen möchten, etwa so:

go test `go list ./... | grep -v directoriesToSkip`

In Fällen, in denen der Grund für das Überspringen von Tests darin besteht, die Laufzeit zu optimieren, wird der Test durchgeführt Funktionen selbst können testen.Short() überprüfen und mit t.Skip() entscheiden, ob übersprungen werden soll. Dies ermöglicht selektive Tests beim Aufruf von go test -short.

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Tests selektiv ausführen und bestimmte Pakete oder Verzeichnisse ausschließen?. 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