Maison >développement back-end >C++ >Comment puis-je déterminer de manière fiable le chemin d'assemblage pour les tests unitaires?

Comment puis-je déterminer de manière fiable le chemin d'assemblage pour les tests unitaires?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-31 23:06:11211parcourir

How Can I Reliably Determine the Assembly Path for Unit Testing?

Navigation de chemins d'assemblage dans les tests unitaires

Les tests unitaires nécessitent souvent l'accès au chemin d'accès de l'assemblage de test pour localiser les fichiers de support. Cela peut être délicat en raison de différents environnements d'exécution.

L'utilisation Environment.CurrentDirectory n'est pas fiable, car elle reflète le répertoire de travail, qui peut différer de l'emplacement de l'assemblage. De même, System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location renvoie l'emplacement de l'appelant, pas celui de l'assemblage actuel.

La solution la plus robuste exploite System.Reflection.Assembly.GetExecutingAssembly().CodeBase:

<code class="language-csharp">string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
string directoryPath = Path.GetDirectoryName(path);</code>

Cela extrait le chemin d'accès de CodeBase, supprime le préfixe "fichier: ///" et fournit le chemin du répertoire correct. Cette méthode garantit des résultats cohérents dans différents contextes de test, permettant un accès fiable aux fichiers nécessaires lors des tests unitaires.

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