Es gibt zwei Möglichkeiten. Am einfachsten ist es, das -run
Flag zu verwenden und ein Muster anzugeben, das den Namen der Tests entspricht, die Sie ausführen möchten.
Beispiel:
$ go test -run NameOfTest
Weitere Informationen finden Sie in den Dokumenten .
Die andere Möglichkeit besteht darin, die spezifische Datei zu benennen, die die Tests enthält, die Sie ausführen möchten:
$ go test foo_test.go
Aber da ist ein Fang. Dies funktioniert gut, wenn:
foo.go
ist in package foo
.
foo_test.go
ist in package foo_test
und importiert 'foo'.
Wenn foo_test.go
und foo.go
dasselbe Paket sind (ein häufiger Fall), müssen Sie alle anderen zum Erstellen erforderlichen Dateien benennen foo_test
. In diesem Beispiel wäre es:
$ go test foo_test.go foo.go
Ich würde empfehlen, das -run
Muster zu verwenden. Oder führen Sie nach Möglichkeit immer alle Pakettests durch.
-run
bitte auszuarbeiten ? Ich kann keine manuelle Referenz zu diesem finden.go help testflag
go test utils.go utils_test.go
die Ausgabeok command-line-arguments 0.002s
. Der Test wird nicht ausgeführt. Der Grund, warum ich diesen Testmodus verwenden möchte, ist, dass das Paket viele Dateien enthält und diese außer Utils noch nicht kompiliert werden. Daher möchte ich Utils finalisieren, bevor ich an anderen Dateien arbeite. Wie kann ich das machen ?-v
(ausführliche) Flag erwähnen . Aus den Dokumenten-v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds.
Die Antwort von @ zzzz ist größtenteils vollständig. Um jedoch zu verhindern, dass andere die referenzierte Dokumentation durchforsten müssen, können Sie einen einzelnen Test in einem Paket wie folgt ausführen:
Beachten Sie, dass Sie den Namen des Tests übergeben möchten, nicht den Dateinamen, in dem der Test vorhanden ist.
Das
-run
Flag akzeptiert tatsächlich einen regulären Ausdruck, sodass Sie den Testlauf auf eine Klasse von Tests beschränken können. Aus den Dokumenten:quelle
Wenn ich einen einzelnen Test durchführe, mache ich normalerweise:
-count 1
stellt außerdem sicher, dass der Test jedes Mal ausgeführt wird, anstatt zwischengespeichert zu werden. Nützlich, wenn Sie gegen Rennbedingungen testen und einen Test haben, der nur manchmal fehlschlägt. In Go-Versionen, in denen keine Module verwendet werden, kann dasselbe durch Festlegen erreicht werdenGOCACHE=off
, dies interagiert jedoch schlecht mit Go-Modulen.quelle
Im IntelliJ IDEA Go-Lang-Plugin (und ich nehme an, in Jetbrains Gogland) können Sie die Testart einfach auf Datei unter Ausführen> Konfigurationen bearbeiten einstellen
quelle
quelle
Verhindert das Zwischenspeichern von Testergebnissen.
quelle
go
Testdatei in diesem Paket befinden-run TestCaseFunc
quelle