Tester des packages spécifiques tout en en excluant d'autres
La commande "go test" de Go permet aux développeurs d'exécuter des tests au sein d'un projet. Cependant, il peut exister des scénarios dans lesquels tester certains packages ou répertoires est inutile ou indésirable. Cette question explore la possibilité d'ignorer des répertoires spécifiques des tests.
Réponse :
1. Invocation explicite :
Une méthode consiste à utiliser des invocations explicites de "go test" pour chaque package à tester. Par exemple, compte tenu de la structure présentée :
mypackage mypackage/net mypackage/other mypackage/scripts
Les tests peuvent être exécutés sur "monpackage", "mypackage/other" et "mypackage/net" tout en excluant "mypackage/scripts" en exécutant les commandes suivantes :
cd mypackage go test cd net go test cd other go test
Il est également possible de fournir une liste de packages à tester séparés par des virgules, y compris le répertoire chemins :
go test mypackage,mypackage/other,mypackage/net
2. Invocation basée sur le shell :
En fonction du shell utilisé, il est possible d'invoquer plusieurs tests à l'aide de l'expansion des caractères génériques. Par exemple, avec Bash ou Zsh :
go test mypackage/{,other,net}
3. Exclusion Utilisation de "go list":
"go list" peut être utilisée pour lister tous les packages qui seraient normalement testés. En acheminant la sortie via grep et en excluant les répertoires indésirables, une liste filtrée peut être obtenue. Cette liste peut ensuite être transmise à "aller tester" :
go test $(go list ./... | grep -v directoriesToSkip)
4. Utilisation de l'indicateur testing.Short() :
Si les tests sont ignorés en raison de leur longueur ou de leur coût, l'indicateur "testing.Short()" peut être utilisé. Les tests qui remplissent une certaine condition peuvent vérifier "testing.Short()" et appeler "t.Skip()" pour s'exclure des tests.
Pour ignorer les tests dans "mypackage", les éléments suivants peuvent être utilisés :
go test -short mypackage/
ou
go test -short ./...
En utilisant ces techniques, les développeurs peuvent exécuter de manière sélective des tests sur les packages souhaités tout en en excluant d'autres. Cette flexibilité peut améliorer l'efficacité et la commodité du processus de test.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!