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 :
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources go test -test.v ./testfile2_test.go
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") }
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!