単体テストでの SQL Express MDF ファイル パスの管理
単体テストでは、SQL Express データベースへの接続が必要になることがよくあります。 ただし、接続文字列で MDF ファイルの絶対ファイル パスをハードコーディングすると、テストの移植性が低くなります。この記事では、代わりに相対パスまたは変数を使用するための解決策について説明します。
|DataDirectory|
トークンは Web アプリケーションでは役立ちますが、単体テスト プロジェクトのようなデスクトップ アプリケーションでは必ずしも信頼できるとは限りません。 より堅牢な方法は、DataDirectory
クラスの AppDomain
プロパティを直接設定することです。
これを実現する方法は次のとおりです:
<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>
このコード スニペットは、DataDirectory
をアプリケーションのベース ディレクトリ内の「Databases」サブフォルダーに設定します。 その後、接続文字列で |DataDirectory|
を利用できます:
<code class="language-xml"><add connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" name="MyConnectionString" /></code>
このアプローチにより、アプリケーションのデプロイメントの場所に関係なく単体テストで MDF ファイルを見つけることができるようになり、より柔軟で保守可能なテスト環境が提供されます。
以上が単体テストで SQL Express MDF ファイルの相対パスを指定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。