アプリケーション構成での相対パスを使用した 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 サイトの他の関連記事を参照してください。