Lors de l'utilisation de bases de données SQL Express dans des projets de tests unitaires en C#, le défi se pose de spécifier l'emplacement relatif du fichier mdf à l'exécutable de l'application. L'utilisation d'un chemin absolu n'est pas pratique et |DataDirectory| variable, bien que réservée aux applications Web, peut être exploitée dans ce scénario.
En combinant les idées de développeurs expérimentés, une solution réalisable émerge. Dans le fichier app.config, définissez la chaîne de connexion comme :
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Dans la classe de test unitaire, la propriété DataDirectory peut être définie dynamiquement :
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialize implementation... }
En définissant la propriété DataDirectory au chemin du dossier de la base de données par rapport à l'exécutable, la chaîne de connexion localisera avec succès le fichier mdf lors des tests unitaires. Cette approche permet une chaîne de connexion dynamique qui s'adapte à l'environnement de déploiement.
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!