SQL Express 接続文字列の相対パス構成
単体テスト プロジェクトでは、MDF データベースの場所を指定するという課題に遭遇します。アプリケーションの場所に相対的なファイル。 app.config ファイルで接続文字列を定義する予定ですが、指定したパスのような絶対パスは避けたいと考えています。
Using |DataDirectory|非 Web アプリケーションでは
あなたの想定に反して、|DataDirectory| Web アプリケーションだけでなく、非 Web アプリケーションにも適用できます。これは、アプリケーションのディレクトリに対する相対的なプレースホルダー パスを表します。あなたの場合、|DataDirectory| を設定できます。
ソリューションの実装
目的のソリューションを実装するには、次の手順に従います:
App.config構成:
|DataDirectory| を使用して app.config で接続文字列を定義します。相対パスのプレースホルダーとして:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
DataDirectory プロパティ設定:
単体テスト クラスで、|TestInitialize| を使用します。 |DataDirectory| を設定するメソッドプロパティを目的のパスに追加します:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization code... }
ここでは、|Databases|
この構成では、実際のディレクトリに関係なく、単体テストは相対パスを使用してデータベースにアクセスできます。アプリケーションの場所。
以上が単体テストで SQL Express 接続文字列の相対パスを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。