Dans Go, les tests unitaires peuvent rencontrer des difficultés lors de l'accès aux fichiers de configuration situés dans un répertoire de travail spécifique. Cet article aborde un tel problème et explore comment guider la commande go test pour utiliser un répertoire de travail souhaité pour l'exécution des tests.
Considérez la situation suivante : Les tests unitaires d'une application Go reposent sur des fichiers de configuration présents dans conf/* .conf. Cependant, lors de l'exécution de ces tests, ils échouent car le binaire est incapable de localiser les fichiers de configuration.
Pour résoudre ce problème, il peut sembler intuitif de naviguer jusqu'au répertoire contenant le répertoire conf/ et d'exécuter go test. Cependant, cette approche échoue souvent. Pour garantir que les tests sont exécutés dans le bon répertoire de travail, Go propose des mécanismes spécifiques :
Le package d'exécution de Go fournit une fonction appelée Caller qui peut récupérer des informations sur la source fichier qui l'a invoqué. Ces informations incluent le nom et le chemin du fichier :
<code class="go">package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) t.Logf("Current test filename: %s", filename) }</code>
En utilisant cette technique, nous pouvons localiser le répertoire qui contient les fichiers de configuration et transmettre ces informations pour aller tester afin de définir le répertoire de travail pour l'exécution du 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!