Heim >Backend-Entwicklung >C++ >Wie lege ich einen relativen Pfad für den Speicherort der SQL Express-Datenbank in C#-Komponententests fest?

Wie lege ich einen relativen Pfad für den Speicherort der SQL Express-Datenbank in C#-Komponententests fest?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 06:21:39891Durchsuche

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

Bestimmen des SQL Express-Datenbankspeicherorts mithilfe eines relativen Pfads in der Anwendungskonfiguration

In einem Unit-Test-Projekt für C#, in dem SQL Express-Datenbanken verwendet werden, wird es notwendig, dies zu tun Definieren Sie eine Verbindungszeichenfolge, die einen Pfad relativ zum Speicherort der Anwendung ermöglicht. Dies ist besser als die explizite Angabe des absoluten Pfads zur Datenbankdatei, wie zum Beispiel:

AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf

Zunächst wurde überlegt, ob |DataDirectory| könnten hierfür eingesetzt werden. Es wurde jedoch festgestellt, dass dies hauptsächlich auf Webanwendungen anwendbar ist und möglicherweise nicht gut mit dem gewünschten Konfigurationssetup zur Steuerung des Datenbankspeicherorts in der Anwendungskonfigurationsdatei übereinstimmt.

Um diese Herausforderung zu meistern, wurde ein Hybridansatz implementiert , wie in der bereitgestellten Lösung beschrieben:

app.config-Datei:

<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />

Unit-Test Klasse:

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

    // rest of initialize implementation ...
}

Dieser Ansatz kombiniert die relative Pfaddefinition in der Verbindungszeichenfolge mit der Zuweisung der DataDirectory-Eigenschaft in der Unit-Test-Klasse und stellt so sicher, dass sich die Datenbankdatei relativ zur ausführbaren Datei der Anwendung befindet während Unit-Tests, während dennoch die Verwendung einer gehosteten SQL-Datenbank in Produktionsumgebungen möglich ist.

Das obige ist der detaillierte Inhalt vonWie lege ich einen relativen Pfad für den Speicherort der SQL Express-Datenbank in C#-Komponententests fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn