ホームページ >バックエンド開発 >C++ >C# 単体テストで SQL Express データベースの場所の相対パスを指定する方法

C# 単体テストで SQL Express データベースの場所の相対パスを指定する方法

Barbara Streisand
Barbara Streisandオリジナル
2025-01-04 06:21:39891ブラウズ

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

アプリケーション構成での相対パスを使用した SQL Express データベースの場所の決定

SQL Express データベースが使用される C# の単体テスト プロジェクトでは、次のことが必要になります。アプリケーションの場所を基準とした相対パスを許可する接続文字列を定義します。これは、次のようなデータベース ファイルへの絶対パスを明示的に指定するよりも望ましい方法です。

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

当初は、 |DataDirectory| かどうかが考慮されました。この目的のために使用することができます。ただし、これは主に Web アプリケーションに適用され、アプリケーション構成ファイル内のデータベースの場所を制御するための望ましい構成設定とうまく整合しない可能性があることが判明しました。

この課題を克服するために、ハイブリッド アプローチが実装されました。 、提供されたソリューションで説明されているように:

app.config file:

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

単体テスト クラス:

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

    // rest of initialize implementation ...
}

このアプローチでは、接続文字列内の相対パス定義と DataDirectory の割り当てを組み合わせます。単体テスト クラスのプロパティで、ホストされた SQL データベースの使用を許可しながら、単体テスト中にデータベース ファイルがアプリケーションの実行可能ファイルに相対的に配置されるようにします。運用環境では。

以上がC# 単体テストで SQL Express データベースの場所の相対パスを指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。