Maison > développement back-end > Golang > Comment gérer les indicateurs de ligne de commande personnalisés dans les tests unitaires Go ?

Comment gérer les indicateurs de ligne de commande personnalisés dans les tests unitaires Go ?

Susan Sarandon
Libérer: 2024-11-29 09:31:12
original
688 Les gens l'ont consulté

How to Handle Custom Command-Line Flags in Go Unit Tests?

Personnalisation des indicateurs de ligne de commande dans les tests unitaires Go

Lorsque vous travaillez avec une application Go modularisée et des tests unitaires qui utilisent des modules d'application spécifiques, il peut être difficile de tester les commandes. fonctionnalité de ligne qui repose sur des indicateurs définis par l'utilisateur.

Considérez l'exemple suivant :

func init() {
    flag.StringVar(&this.customPath, "gamedir.custom", "", "Custom game resources directory")
}
Copier après la connexion

Lorsque vous essayez pour tester cette fonctionnalité avec la commande :

go test -test.v ./... -gamedir.custom=c:/resources
Copier après la connexion

le runtime renvoie une erreur :

flag provided but not defined: -gamedir.custom
Copier après la connexion

Comprendre le problème

L'erreur survient car la commande go test s'exécute tests individuels simultanément. Lors de l'utilisation d'un indicateur -test.v, plusieurs exécutables de test sont créés, chacun avec ses propres indicateurs de ligne de commande. Si un test particulier ne gère pas explicitement l'indicateur -gamedir.custom, il échouera avec l'erreur susmentionnée.

Solution : définir des indicateurs dans les tests individuels

Pour résoudre ce problème, définissez la commande -indicateurs de ligne dans chaque fichier de test. Cela garantit que chaque exécutable de test peut gérer les indicateurs nécessaires.

Par exemple :

func TestMyModule(t *testing.T) {
    flag.StringVar(&this.customPath, "gamedir.custom", "", "Custom game resources directory")

    // Test code here...
}
Copier après la connexion

En définissant les indicateurs dans chaque fonction de test, nous garantissons que tous les exécutables de test ont les indicateurs appropriés définis et peut fonctionner sans erreurs.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal