Go Test eine Liste der Pakete erfolgt auf der Kommandozeile zu testen (siehe go help packages
) so Sie können, wie so eine beliebige Menge von Paketen mit einem einzigen Aufruf testen:
go test import/path/to/mypackage import/path/to/mypackage/other import/path/to/mypackage/net
Oder je nach Shell:
go test import/path/to/mypackage{,/other,/net}
Sie könnten in der Lage sein, interessant Anrufungen von go list
als Argument verwendet werden (auch hier auf der Shell abhängig):
go test `go list`
Ihr Kommentar sagt, dass Sie ein Unterverzeichnis, so überspringen mögen (je nach Shell) vielleicht dies:
go test `go list ./... | grep -v directoriesToSkip`
wie bei allem, wenn Sie das tun, viel Sie ein Shell-Alias machen könnte/was auch immer für sie.
Wenn der Grund, warum Sie Tests überspringen wollen, ist zum Beispiel, dass Sie lange/teure Tests, die Sie oft überspringen wollen, als die Tests könnte sie/sollte testing.Short()
überprüfen und t.Skip()
als angemessen bezeichnen.
Dann könnten Sie entweder laufen:
go test -short import/path/to/mypackage/...
oder aus dem mypackage
Verzeichnis:
go test -short ./...
Sie andere Dinge verwenden können testing.Short()
auslösen als auch übersprungen werden.
Ich will nur, ohne ein Verzeichnis/Paket überspringen 'manuell schreiben' gehen Test packagex'' für jedes Paket, das ich testen möchten. Nehmen wir an, Sie haben 100 Pakete, möchten aber eines überspringen. Macht das Sinn? – themihai
@mihai Ich habe eine Go-Liste hinzugefügt | grep -v Beispiel; oder Sie könnten veranlassen, dass die Tests in diesem Unterverzeichnis sich selbst überspringen, es sei denn, eine Bedingung ist festgelegt. Oder Sie könnten Ihre Verzeichnisse so umstrukturieren, dass das "Beleidigende" irgendwo anders ist (wenn es wirklich irgendwie anders ist als die anderen). –
go test 'go list./... | grep -v directoriesToSkip überspringt "directoriesToSkip" nicht, wenn sie Unterverzeichnisse des aktuellen Verzeichnisses sind. –