Problem:
Wenn ich denselben Go-Test zweimal durchführe, wird der zweite Lauf überhaupt nicht durchgeführt. Die Ergebnisse sind die zwischengespeicherten Ergebnisse aus dem ersten Lauf.
PASS
ok tester/apitests (cached)
Links
Ich habe bereits https://golang.org/cmd/go/#hdr-Testing_flags überprüft, aber es gibt kein CLI-Flag für diesen Zweck.
Frage:
Gibt es eine Möglichkeit, go test zu zwingen, immer Test auszuführen und Testergebnisse nicht zwischenzuspeichern.
go clean -testcache ./...
funktioniert (oben auf einem Monorepo)In Go11 konnte ich den Cache
GOCACHE
mit Modulen nicht deaktivieren. Stattdessen habe ich Folgendes verwendet-count=1
:Vor Go11:
Oder bereinigen Sie den Testcache und führen Sie den Test erneut aus:
quelle
Es wird auch hier
GOCACHE=off
erwähnt .quelle
go 1.11
und mit Go-Modulen wird bei der VerwendungGOCACHE=off
ein Fehler angezeigtgo: cannot use modules with build cache disabled
. Umso besser ist es, empfohlen zu verwenden-count 1
.GOCACHE
wird die Einstellung in Go 1.12 langsam eingestellt, sodass die Verwendunggo test -count=1 ...
jetzt sicherer ist.build cache is disabled by GOCACHE=off, but required as of Go 1.12
So habe ich das behoben (ich verwende Visual Studio Code unter macOS):
Code> Einstellungen> Einstellungen
Klicken Sie
...
auf der rechten Seite der Einstellungsseite aufKlicken
Open settings.json
Entweder:
Fügen Sie der Datei settings.json das folgende Snippet hinzu
go.testEnvVars
, um Folgendes einzuschließen:"GOCACHE": "off"
quelle
GOCACHE
daher funktioniert die Einstellung mit den neuesten Versionen von Go nicht. Eine Lösung für VS Code besteht darin,"go.testFlags": ["-count=1"]
die Einstellungen vorzunehmen.