Maison > développement back-end > Golang > Comment résoudre les erreurs « aucun fichier ou répertoire de ce type » lors de l'utilisation de modèles Go dans les tests unitaires App Engine ?

Comment résoudre les erreurs « aucun fichier ou répertoire de ce type » lors de l'utilisation de modèles Go dans les tests unitaires App Engine ?

Mary-Kate Olsen
Libérer: 2024-12-01 09:04:12
original
582 Les gens l'ont consulté

How to Resolve

Comment spécifier le chemin du modèle pour App Engine avec les tests unitaires Go

Lors de l'utilisation du package de modèles intégré dans Go sur App Engine, spécifier le chemin d'accès aux fichiers modèles peut être difficile lors des tests unitaires. Bien que le chemin fonctionne pendant le développement local, l'exécution de tests unitaires entraîne souvent l'erreur "panique : ouvrez [chemin du modèle] : aucun fichier ou répertoire de ce type."

Ce problème se produit car le répertoire de travail pendant les tests unitaires diffère de cela lors de l'exécution de l'application. En mode développement, le répertoire courant est la racine de l'application, ce qui permet de résoudre correctement les chemins relatifs. Cependant, lors des tests unitaires, le répertoire actuel bascule vers le dossier contenant le fichier de test, provoquant l'échec des chemins relatifs.

Pour résoudre ce problème, il existe deux options principales :

1. Remplacez le répertoire de travail par la racine de l'application

Avant d'exécuter du code qui utilise des chemins relatifs, définissez le répertoire de travail sur le dossier racine de l'application à l'aide de os.Chdir(). Par exemple :

if err := os.Chdir("../.."); err != nil {
    panic(err)
}
Copier après la connexion

Alternativement, cela peut être fait dans une fonction init() dans le fichier de test pour garantir qu'il est exécuté avant toute méthode de test.

2. Refactor Code

Pour le code utilisant des chemins relatifs, modifiez-le pour accepter un paramètre pour le chemin de base du chemin relatif. Ce chemin de base peut être défini différemment lors de l'exécution de tests unitaires, permettant au chemin relatif d'être correctement résolu. Par exemple :

base := "" // Set to "" when running normally and to app root when testing
tplPaths := append([]string{"templates/index.html"}, templates...)
Copier après la connexion

En incorporant l'une de ces techniques, vous pouvez vous assurer que les chemins des modèles sont correctement résolus lors des tests unitaires, vous permettant ainsi de tester efficacement votre code.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal