Chemin relatif pour la chaîne de connexion SQL Express dans le projet de test unitaire
Dans votre question, vous vous demandez comment utiliser un chemin relatif ou une variable dans le fichier app.config pour une chaîne de connexion à la base de données SQL Express. Vous utilisez un chemin absolu pour spécifier l'emplacement du fichier MDF, mais vous recherchez une approche plus flexible.
Pour y parvenir, vous pouvez en effet utiliser le |DataDirectory| espace réservé dans la chaîne de connexion. Cependant, vous avez tort de supposer que cela ne s'applique qu'aux applications Web. |Répertoire de données| est une variable spéciale qui pointe vers le répertoire où réside l'assembly exécutable de l'application. Il s'agit d'un moyen pratique de faire référence à un emplacement spécifique sans avoir à fournir un chemin absolu.
Pour implémenter cela, vous pouvez modifier la chaîne de connexion dans votre fichier app.config comme suit :
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyUnitTestDB.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Cela demandera à l'application de localiser le fichier MDF dans le même répertoire que l'assembly exécutable.
Pour définir le |DataDirectory| propriété, vous pouvez utiliser le code suivant dans votre classe de test unitaire :
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialize implementation ... }
Cette ligne définira le |DataDirectory| propriété dans le répertoire spécifié, où se trouve votre fichier MDF. En utilisant cette approche, vous pouvez conserver une chaîne de connexion relative qui fonctionnera quel que soit l'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!