Maison > développement back-end > Golang > Comment puis-je exécuter des tests Go pour des packages spécifiques tout en en excluant d'autres ?

Comment puis-je exécuter des tests Go pour des packages spécifiques tout en en excluant d'autres ?

DDD
Libérer: 2024-11-30 01:32:13
original
841 Les gens l'ont consulté

How Can I Run Go Tests for Specific Packages While Excluding Others?

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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}
Copier après la connexion

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)
Copier après la connexion

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/
Copier après la connexion

ou

go test -short ./...
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal