Problem:
Kiedy wykonuję ten sam test go dwa razy, drugie uruchomienie w ogóle nie jest wykonywane. Wyniki pochodzą z pamięci podręcznej z pierwszego uruchomienia.
PASS
ok tester/apitests (cached)
Spinki do mankietów
Sprawdziłem już https://golang.org/cmd/go/#hdr-Testing_flags, ale nie ma do tego flagi CLI.
Pytanie:
Czy istnieje możliwość wymuszenia przejścia testu, aby zawsze uruchamiał test i nie zapisywał wyników testu w pamięci podręcznej.
go clean -testcache ./...
też działa (na szczycie monorepo)W Go11 nie mogłem wyłączyć pamięci podręcznej przy użyciu
GOCACHE
modułów,-count=1
zamiast tego użyłem :go test -count=1
Przed wyjazdem11:
GOCACHE=off go test
Lub wyczyść pamięć podręczną testów i uruchom test ponownie:
go clean -testcache && go test
źródło
Jest też
GOCACHE=off
wspomnieć tutaj .źródło
go 1.11
i posiadanie funkcji modułów go przy używaniuGOCACHE=off
powoduje błądgo: cannot use modules with build cache disabled
. Lepiej jest użyć sugerowanych-count 1
.GOCACHE
będzie powoli wycofywana z wersji 1.12, więc używaniego test -count=1 ...
jest teraz bezpieczniejszym wyborem.build cache is disabled by GOCACHE=off, but required as of Go 1.12
Sposób, w jaki to naprawiłem (używam Visual Studio Code na macOS):
Kod> Preferencje> Ustawienia
Kliknij
...
po prawej stronie strony ustawieńKliknij
Open settings.json
Zarówno:
Dodaj następujący fragment kodu do pliku settings.json
"go.testEnvVars": { "GOCACHE": "off" }
go.testEnvVars
aby uwzględnić następujące elementy:"GOCACHE": "off"
źródło
GOCACHE
nie będzie działać z ostatnimi wersjami Go. Rozwiązaniem dla VS Code jest ustawienie"go.testFlags": ["-count=1"]
w ustawieniach.