Maison > développement back-end > Golang > Comment puis-je tester efficacement les arguments de ligne de commande dans les tests unitaires Go ?

Comment puis-je tester efficacement les arguments de ligne de commande dans les tests unitaires Go ?

Barbara Streisand
Libérer: 2024-12-20 00:46:09
original
695 Les gens l'ont consulté

How Can I Effectively Test Command-Line Arguments in Go Unit Tests?

Test des arguments de ligne de commande dans les tests unitaires Go

Dans votre question, vous mentionnez un problème lors de l'utilisation des indicateurs de ligne de commande dans l'unité Go essais. Vous disposez d'une application modulaire avec des tests qui utilisent différents ensembles de modules d'application, dont certains sont réglés via des indicateurs de ligne de commande. Cependant, lorsque vous exécutez les tests avec des indicateurs de ligne de commande personnalisés, vous obtenez une erreur indiquant que l'indicateur n'est pas défini.

Le problème sous-jacent est que l'exécutable du test applique tous les paramètres de ligne de commande à moins qu'un ou un plus grand nombre d’entre eux y sont ignorés. Dans votre cas, vous disposez de plusieurs tests, et certains d'entre eux utilisent l'indicateur personnalisé tandis que d'autres ne le font pas.

Pour résoudre ce problème, vous avez deux options :

  • Exécutez le test go pour chaque fichier _test.go séparément : Transmettez l'ensemble de paramètres approprié pour chaque test individuellement. Par exemple :
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources
go test -test.v ./testfile2_test.go
Copier après la connexion
  • Ignorer les indicateurs inutilisés dans le test : Modifiez vos fichiers de test pour ignorer les indicateurs inutilisés. Par exemple, dans le test qui n'utilise pas l'indicateur -gamedir.custom, vous pouvez ajouter le code suivant :
var customPath string
func init() {
    flag.StringVar(&customPath, "gamedir.custom", "", "Custom game resources directory")
}
func TestFunc(t *testing.T) {
    if testing.Short() {
        return
    }
    t.Skip("Skipping this test as it uses `-gamedir.custom` flag")
}
Copier après la connexion

La vérification testing.Short() est utilisée pour déterminer si le test est exécuté en mode court, ce qui est généralement le cas lors de l'exécution de tous les tests simultanément. Si le test est exécuté en mode court, il sera ignoré. Sinon, le test sera ignoré car l'indicateur -gamedir.custom n'est pas utilisé.

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
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