Heim >Backend-Entwicklung >C++ >Wie konfiguriere ich relative Pfade für SQL Express-Verbindungszeichenfolgen in Komponententests?
Relative Pfadkonfiguration für SQL Express-Verbindungszeichenfolge
In Ihrem Unit-Test-Projekt stehen Sie vor der Herausforderung, den Speicherort Ihrer MDF-Datenbank anzugeben Datei relativ zum Speicherort der Anwendung. Sie beabsichtigen, die Verbindungszeichenfolge in der Datei app.config zu definieren, möchten aber absolute Pfade wie den von Ihnen angegebenen vermeiden.
Verwenden von |DataDirectory| in Nicht-Webanwendungen
Entgegen Ihrer Annahme |DataDirectory| ist nicht nur auf Webanwendungen anwendbar, sondern kann auch in Nicht-Webanwendungen eingesetzt werden. Es stellt einen Platzhalterpfad relativ zum Verzeichnis der Anwendung dar. In Ihrem Fall können Sie das |DataDirectory| festlegen Wert auf den Pfad, in dem sich Ihre Datenbank befindet.
Implementieren der Lösung
Um Ihre gewünschte Lösung zu implementieren, befolgen Sie diese Schritte:
App.config-Konfiguration:
Definieren Ihre Verbindungszeichenfolge in app.config mit |DataDirectory| als Platzhalter für den relativen Pfad:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
DataDirectory-Eigenschaftseinstellung:
Verwenden Sie in Ihrer Unit-Test-Klasse |TestInitialize| Methode zum Festlegen des |DataDirectory| Eigenschaft zum gewünschten Pfad:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization code... }
Hier die |Databases| Es wird davon ausgegangen, dass der Ordner ein Unterordner Ihres Anwendungsverzeichnisses ist.
Mit dieser Konfiguration können Ihre Komponententests über einen relativen Pfad auf die Datenbank zugreifen, unabhängig vom tatsächlichen Ort der Anwendung.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich relative Pfade für SQL Express-Verbindungszeichenfolgen in Komponententests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!