"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment définir le répertoire de travail pour vos tests Go ?

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

Publié le 2024-11-17
Parcourir:366

How to Set the Working Directory for Your Go Tests?

Répertoire de travail dans les tests Go

Dans Go, il est courant de placer les fichiers de configuration dans le répertoire de travail et de les référencer dans le code. Cependant, les tests unitaires peuvent ne pas parvenir à trouver ces fichiers si l'environnement de test ne correspond pas à celui de production.

Pour spécifier un répertoire de travail pour vos tests Go, explorez la solution suivante :

Envisagez en utilisant la fonction Caller du package d’exécution. L'appelant prend le fichier source de test actuel et renvoie son chemin. Ce chemin peut être utilisé pour définir le répertoire de travail du test :

package sample

import (
    "testing"
    "runtime"
    "os"
)

func TestGetDirectory(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    dir := filepath.Dir(filename)
    os.Chdir(dir)
    // Run tests using configuration files in the modified working directory
}

En utilisant Caller, vous pouvez obtenir le chemin d'accès au fichier source de test actuel et définir le répertoire de travail en conséquence. Cela permet à vos tests de localiser les fichiers de configuration dans le même répertoire que le code de test, ce qui devrait résoudre les erreurs de fichier introuvable.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3