Maison >développement back-end >Golang >Comment puis-je obtenir le répertoire de packages correct dans Go lors de l'utilisation de « ioutil.ReadFile() » dans les tests ?
Obtention du répertoire des packages dans Go
Vous êtes confronté à un problème où ioutil.ReadFile() tente de localiser un fichier dans le mauvais répertoire lorsque vous l'appelez à partir d'un package de test. Le problème se résume à la façon dont le répertoire de travail actuel (CWD) est déterminé dans votre configuration.
Pour résoudre ce problème, la solution réside dans l'utilisation de runtime.Caller(). Cette fonction fournit des informations sur l'appelant de la fonction actuelle. En utilisant le chemin du fichier renvoyé par runtime.Caller(), vous pouvez dériver le répertoire du package où se trouve le fichier.
Voici un exemple qui montre comment utiliser runtime.Caller() :
package main import ( "fmt" "runtime" "path" ) func main() { _, filename, _, ok := runtime.Caller(0) if !ok { panic("No caller information") } fmt.Printf("Filename : %q, Dir : %q\n", filename, path.Dir(filename)) }
Lorsque ce code est exécuté, il imprimera le nom de fichier et le répertoire du fichier qui l'a appelé. Cela vous permet de localiser avec précision les fichiers quel que soit le CWD.
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!