Problème:
Lorsque je lance le même test deux fois, la deuxième exécution n'est pas terminée. Les résultats sont ceux en cache de la première exécution.
PASS
ok tester/apitests (cached)
Liens
J'ai déjà vérifié https://golang.org/cmd/go/#hdr-Testing_flags mais il n'y a pas d'indicateur cli à cette fin.
Question:
Existe-t-il une possibilité de forcer go test à toujours exécuter le test et ne pas mettre en cache les résultats du test?
Il y a quelques options comme décrit dans le test des drapeaux :
go clean -testcache
: expire tous les résultats de test-count=1
Cela dit, toute modification de votre code ou de votre code de test invalidera les résultats du test mis en cache (la logique est également étendue lorsque vous utilisez des fichiers locaux ou des variables d’environnement). Il n’est donc pas nécessaire d’invalider manuellement le cache de test.
Il y a aussi GOCACHE=off
mentionné ici .
La façon dont j'ai résolu ce problème (j'utilise le code Visual Studio sur macOS):
Code> Préférences> Paramètres
Cliquez sur ...
à droite de la page de configuration.
Cliquez Open settings.json
Soit:
Ajoutez l'extrait suivant à votre fichier settings.json.
"go.testEnvVars": {
"GOCACHE": "off"
}
go.testEnvVars
pour inclure les éléments suivants: "GOCACHE": "off"
En Go11, je ne pouvais pas désactiver le cache en utilisant GOCACHE
avec des modules, j'ai utilisé -count=1
à la place:
go test -count=1
Avant Go11:
GOCACHE=off go test
Ou nettoyez le cache de test et relancez le test:
go clean -testcache && go test