Verwalten von SQL Express MDF-Dateipfaden in Komponententests
Unit-Tests erfordern häufig eine Verbindung zu SQL Express-Datenbanken. Durch die Festcodierung absoluter Dateipfade für MDF-Dateien in Ihren Verbindungszeichenfolgen werden Ihre Tests jedoch weniger portierbar. In diesem Artikel werden Lösungen für die Verwendung relativer Pfade oder Variablen stattdessen untersucht.
Während das |DataDirectory|
-Token in Webanwendungen hilfreich ist, ist es in Desktopanwendungen wie Unit-Test-Projekten nicht immer zuverlässig. Eine robustere Methode besteht darin, die Eigenschaft DataDirectory
der Klasse AppDomain
direkt festzulegen.
So können Sie das erreichen:
<code class="language-csharp">[TestInitialize] public void TestInitialize() { string databaseDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases"); AppDomain.CurrentDomain.SetData("DataDirectory", databaseDirectory); // ... rest of your initialization code ... }</code>
Dieses Code-Snippet legt DataDirectory
auf einen Unterordner „Datenbanken“ im Basisverzeichnis Ihrer Anwendung fest. Sie können dann |DataDirectory|
in Ihrer Verbindungszeichenfolge verwenden:
<code class="language-xml"><add connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" name="MyConnectionString" /></code>
Dieser Ansatz stellt sicher, dass Ihre Unit-Tests die MDF-Datei unabhängig vom Bereitstellungsort der Anwendung finden können, was eine flexiblere und wartbarere Testumgebung bietet.
Das obige ist der detaillierte Inhalt vonWie kann ich in Unit-Tests einen relativen Pfad für meine SQL Express-MDF-Datei angeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!