ホームページ >データベース >mysql チュートリアル >単体テスト プロジェクトで SQL Express 接続文字列の相対パスを使用するにはどうすればよいですか?

単体テスト プロジェクトで SQL Express 接続文字列の相対パスを使用するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-11 10:52:43252ブラウズ

How Can I Use a Relative Path for a SQL Express Connection String in My Unit Test Project?

単体テスト プロジェクトの SQL Express 接続文字列の相対パス

ご質問では、 SQL Express データベース接続文字列の app.config ファイル。 MDF ファイルの場所を指定するために絶対パスを使用してきましたが、より柔軟なアプローチを求めています。

これを実現するには、実際に |DataDirectory| を利用できます。接続文字列内のプレースホルダー。ただし、それが Web アプリケーションにのみ適用されるという仮定は間違っています。 |データディレクトリ|は、アプリケーションの実行可能アセンブリが存在するディレクトリを指す特別な変数です。これは、絶対パスを指定せずに特定の場所を参照する便利な方法です。

これを実装するには、app.config ファイル内の接続文字列を次のように変更します。

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

これにより、実行可能アセンブリと同じディレクトリに MDF ファイルを配置するようアプリケーションに指示されます。

|DataDirectory| を設定するにはプロパティを使用するには、単体テスト クラスで次のコードを使用できます。

[TestInitialize]
public void TestInitialize()
{
    AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases"));
    
    // Rest of initialize implementation ...
}

この行は |DataDirectory| を設定します。プロパティを、MDF ファイルが配置されている指定されたディレクトリにコピーします。このアプローチを使用すると、アプリケーションの場所に関係なく機能する相対接続文字列を維持できます。

以上が単体テスト プロジェクトで SQL Express 接続文字列の相対パスを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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