Il y a deux façons. Le plus simple est d'utiliser l' -run
indicateur et de fournir un modèle correspondant aux noms des tests que vous souhaitez exécuter.
Exemple:
$ go test -run NameOfTest
Voir la documentation pour plus d'informations.
L'autre façon consiste à nommer le fichier spécifique, contenant les tests que vous souhaitez exécuter:
$ go test foo_test.go
Mais il y a un hic. Cela fonctionne bien si:
foo.go
est dedans package foo
.
foo_test.go
est package foo_test
dedans et importe "foo".
Si foo_test.go
et foo.go
sont le même package (un cas courant), vous devez nommer tous les autres fichiers nécessaires à la construction foo_test
. Dans cet exemple, ce serait:
$ go test foo_test.go foo.go
Je recommanderais d'utiliser le -run
modèle. Ou, dans la mesure du possible, exécutez toujours tous les tests de package.
-run
s'il vous plaît? Je ne trouve aucune référence manuelle sur celui-ci.go help testflag
go test utils.go utils_test.go
la sortie estok command-line-arguments 0.002s
. Il ne lance pas le test. La raison pour laquelle je souhaite utiliser ce mode de test est que le package contient de nombreux fichiers et qu'ils ne compilent pas encore, sauf les utilitaires. Je voudrais donc finaliser les utilitaires avant de travailler sur d'autres fichiers. Comment puis je faire ça ?-v
drapeau (verbeux). De la documentation-v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds.
La réponse de @ zzzz est presque complète, mais pour éviter aux autres d'avoir à fouiller dans la documentation référencée , vous pouvez exécuter un seul test dans un package comme suit:
Notez que vous souhaitez transmettre le nom du test, pas le nom de fichier où le test existe.
L'
-run
indicateur accepte en fait une expression régulière afin que vous puissiez limiter l'exécution du test à une classe de tests. De la documentation:la source
Lors de l'exécution d'un seul test, je fais généralement:
-count 1
garantit également que le test est exécuté à chaque fois au lieu d'être mis en cache. Utile lorsque vous testez des conditions de course et que vous avez un test qui échoue parfois. Dans les versions Go n'utilisant pas de modules, la même chose pourrait être obtenue en définissantGOCACHE=off
mais cela interagit mal avec les modules Go.la source
dans le plugin intelliJ IDEA go-lang (et je suppose que dans jetbrains Gogland), vous pouvez simplement définir le type de test à déposer sous exécuter> modifier les configurations
la source
la source
Empêche la mise en cache des résultats des tests.
la source
go
fichier de test dans ce package-run TestCaseFunc
la source