Problema:
Cuando ejecuto la misma prueba de marcha dos veces, la segunda ejecución no se realiza en absoluto. Los resultados son los almacenados en caché de la primera ejecución.
PASS
ok tester/apitests (cached)
Enlaces
Ya verifiqué https://golang.org/cmd/go/#hdr-Testing_flags pero no hay una bandera cli para ese propósito.
Pregunta:
¿Existe la posibilidad de forzar la prueba para ejecutar siempre la prueba y no almacenar en caché los resultados de la prueba?
go clean -testcache ./...
también funciona (en la parte superior de un monorepo)En Go11, no pude deshabilitar el uso de caché
GOCACHE
con módulos, usé en su-count=1
lugar:go test -count=1
Antes de Go11:
GOCACHE=off go test
O bien, limpie la caché de prueba y vuelva a ejecutar la prueba:
go clean -testcache && go test
fuente
También se
GOCACHE=off
menciona aquí .fuente
go 1.11
y tener la función de módulos go sobre el usoGOCACHE=off
da un errorgo: cannot use modules with build cache disabled
. Lo mejor es usar sugerido-count 1
.GOCACHE
se eliminará gradualmente en la versión 1.12, por lo que ahora usarlogo test -count=1 ...
es una opción más segura.build cache is disabled by GOCACHE=off, but required as of Go 1.12
La forma en que arreglé esto (estoy usando Visual Studio Code en macOS):
Código> Preferencias> Configuración
Haga clic en
...
en el lado derecho de la página de configuraciónHacer clic
Open settings.json
Ya sea:
Agregue el siguiente fragmento a su archivo settings.json
"go.testEnvVars": { "GOCACHE": "off" }
go.testEnvVars
para incluir lo siguiente:"GOCACHE": "off"
fuente
GOCACHE
no funcionará con las versiones recientes de Go. Una solución para VS Code es establecer"go.testFlags": ["-count=1"]
la configuración.