Comment faire pour exécuter les cas de test dans un fichier spécifié?
Mon colis en cas de test sont éparpillés dans de multiples fichiers, si je lance go test <package_name>
il exécute tous les cas de test dans le package.
Il est inutile de courir tous bien. Est-il un moyen de spécifier un fichier pour go test
à courir, de sorte qu'il s'exécute uniquement des cas de test définie dans le fichier?
Vous devez vous connecter pour publier un commentaire.
Il existe deux façons. Ce qui est simple est d'utiliser le
-run
drapeau et de fournir un modèle de correspondance des noms des tests que vous souhaitez exécuter.Exemple:
Voir le docs pour plus d'info.
L'autre façon, c'est le nom du fichier spécifique, contenant les tests que vous souhaitez exécuter:
Mais il ya un hic. Cela fonctionne bien si:
foo.go
est danspackage foo
.foo_test.go
est danspackage foo_test
et importations 'foo'.Si
foo_test.go
etfoo.go
sont du même package (un cas), alors vous devez le nom de tous les autres fichiers nécessaires pour construirefoo_test
. Dans cet exemple, il serait:Je vous recommande d'utiliser le
-run
modèle. Ou, où, quand possible, toujours exécuter tous les tests.-run
s'il vous plaît? Je ne peux pas trouver n'importe quel manuel de référence sur celui-là.go help testflag
go test utils.go utils_test.go
la sortie estok command-line-arguments 0.002s
. Il n'a pas d'exécuter le test. La raison pour laquelle je veux utiliser ce mode de test est parce que le paquet contient de nombreux fichiers et ils ne se compile pas, pourtant, à l'exception utils. Donc, je tiens à finaliser utils avant workinqg sur d'autres fichiers. Comment puis-je le faire ?-v
(commentaires) du pavillon. À partir 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.
@zzzz la réponse est presque terminé, mais juste pour sauver les autres d'avoir à creuser par le biais de l'référencé la documentation vous pouvez exécuter un test unique dans un package comme suit:
Note que vous voulez passer le nom du test, pas le nom du fichier où le test existe.
La
-run
drapeau accepte réellement une expression régulière de sorte que vous pourrait limiter l'essai pour une classe de tests. À partir de la documentation:Lors de l'exécution d'un seul test que je fais habituellement:
-count 1
s'assure également que le test est exécuté à chaque fois au lieu d'être mis en cache. Utile lorsque vous êtes à l'essai contre des conditions de course et d'avoir un test qui échoue parfois seulement. Allez les versions utilisez pas les modules de la même chose pourrait être atteint par la création deGOCACHE=off
mais ce interagit peu avec les modules.dans intelliJ IDEA aller-lang plugin (et je suppose que dans le jetbrains Gogland), vous pouvez simplement mettre le test de type de fichier sous run > modifier les configurations
go
fichier de test dans ce package-run TestCaseFunc