Maison  >  Article  >  développement back-end  >  Comment définir correctement le répertoire de travail pour les tests Go ?

Comment définir correctement le répertoire de travail pour les tests Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 03:57:02831parcourir

How to Correctly Set the Working Directory for Go Tests?

Résolution des problèmes de répertoire de travail dans les tests Go

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 :

Utilisation de la fonction Caller

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!

Déclaration:
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