Maison > développement back-end > C++ > Comment spécifier un chemin relatif pour l'emplacement de la base de données SQL Express dans les tests unitaires C# ?

Comment spécifier un chemin relatif pour l'emplacement de la base de données SQL Express dans les tests unitaires C# ?

Barbara Streisand
Libérer: 2025-01-04 06:21:39
original
910 Les gens l'ont consulté

How to Specify a Relative Path for SQL Express Database Location in C# Unit Tests?

Détermination de l'emplacement de la base de données SQL Express à l'aide d'un chemin relatif dans la configuration de l'application

Dans un projet de test unitaire pour C#, où les bases de données SQL Express sont utilisées, il devient nécessaire de définir une chaîne de connexion qui permet un chemin relatif à l'emplacement de l'application. Ceci est plus préférable que de spécifier explicitement le chemin absolu du fichier de base de données, tel que :

AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf
Copier après la connexion

Au départ, il a été envisagé si |DataDirectory| pourraient être employés à cet effet. Cependant, il a été découvert que cela s'applique principalement aux applications Web et pourrait ne pas correspondre à la configuration souhaitée pour contrôler l'emplacement de la base de données dans le fichier de configuration de l'application.

Pour surmonter ce défi, une approche hybride a été mise en œuvre. , comme indiqué dans la solution fournie :

fichier app.config:

<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Copier après la connexion

Test unitaire class:

[TestInitialize]
public void TestInitialize()
{
    AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases"));

    // rest of initialize implementation ...
}
Copier après la connexion

Cette approche combine la définition du chemin relatif dans la chaîne de connexion avec l'affectation de la propriété DataDirectory dans la classe de test unitaire, garantissant que le fichier de base de données est situé par rapport à l'exécutable de l'application. lors des tests unitaires, tout en permettant l'utilisation d'une base de données SQL hébergée dans des environnements de production.

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