Configuration du chemin relatif pour la chaîne de connexion SQL Express
Dans votre projet de test unitaire, vous rencontrez le défi de spécifier l'emplacement de votre base de données MDF fichier par rapport à l’emplacement de l’application. Vous avez l'intention de définir la chaîne de connexion dans le fichier app.config, mais vous préférez éviter les chemins absolus comme celui que vous avez fourni.
Utilisation de |DataDirectory| dans les applications non Web
Contrairement à votre hypothèse, |DataDirectory| s'applique non seulement aux applications Web, mais peut également être utilisé dans des applications non Web. Il représente un chemin d'espace réservé relatif au répertoire de l'application. Dans votre cas, vous pouvez définir le |DataDirectory| valeur au chemin où réside votre base de données.
Mise en œuvre de la solution
Pour mettre en œuvre la solution souhaitée, suivez ces étapes :
Configuration App.config :
Définir votre chaîne de connexion dans app.config en utilisant |DataDirectory| comme espace réservé pour le chemin relatif :
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Paramètre de la propriété DataDirectory :
Dans votre classe de test unitaire, utilisez le |TestInitialize| méthode pour définir le |DataDirectory| propriété au chemin souhaité :
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization code... }
Ici, les |Bases de données| Le dossier est supposé être un sous-dossier du répertoire de votre application.
Avec cette configuration, vos tests unitaires peuvent accéder à la base de données en utilisant un chemin relatif, quel que soit le chemin réel emplacement de l'application.
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!