NUnit を使用して ASP.NET アプリケーションをテストしたいのですが、NUnit GUI から実行すると WebConfigurationManager.ConnectionStrings コレクションが空のようです。
このコレクションを初期化する方法を教えてください (おそらく [TestFixture] の [SetUp] 関数で)。Web.config をどこかにコピーする必要がありますか?
ありがとうございました!
NUnit を使用して ASP.NET アプリケーションをテストしたいのですが、NUnit GUI から実行すると WebConfigurationManager.ConnectionStrings コレクションが空のようです。
このコレクションを初期化する方法を教えてください (おそらく [TestFixture] の [SetUp] 関数で)。Web.config をどこかにコピーする必要がありますか?
ありがとうございました!
NUnit テストの .config ファイルが配置される場所は、ここにある他の投稿が示唆するよりも少し複雑です。NUnit GUI Project/Edit ダイアログに、このための設定があります。デフォルト値はすべて、NUnit プロジェクト ファイルの作成方法によって異なります。
NUnit GUI を開いて File/Open を選択し、.dll ファイルを選択すると、新しいプロジェクトがセットアップされ、同じディレクトリ内の dll と同じ名前の構成ファイルを検索するように設定されます。したがって、ロードした場合、\bin\debug\MyTests.dll
NUnit は\bin\Debug\MyTests.dll.config
デフォルトで検索します。これに関する唯一の問題は、リリース ビルドを作成するときに別の NUnit プロジェクトを作成する必要があることです。
File/NewProject を選択して NUnit プロジェクトを作成した場合、デフォルト設定では、NUnit プロジェクトと同じ名前の構成ファイルを検索します。したがって、\MyNUnitProject.nunit
NUnitを作成した場合\MyNUnitProject.config
、デフォルトで検索されます。
おそらく、Visual Studio を使用して\App.config
ファイルを作成し、それをテスト dll のソース フォルダーに貼り付けたことがあるでしょう。テスト プロジェクトをビルドすると、選択した構成にコピーされる\bin\Debug\MyTests.dll.config
か、それ\bin\Release\MyTests.dll.config
に応じてコピーされます。MyTest.dll を NUnit で直接開いた場合は問題なく動作しますが、新しい NUnit プロジェクトを作成した場合は、デフォルトでこれらのファイルを検索しないため、問題が発生します。
この問題を解決するには、NUnit GUI で [プロジェクト/編集] ダイアログを開き、.Net プロジェクトに一致する 2 つの構成のデバッグとリリースがあることを確認する必要があります。これが完了したら、Debug Configuration を選択し、ApplicationBase をbin\Debug\
に設定し、Configuration File Name を に設定しますMyTests.dll.config
。リリース構成についても同じことを行います。
Company.Component.Tests.dll という名前の単体テスト アセンブリがある場合は、Company.Component.Tests.dll.config が適切な接続文字列と共にそこにあることを確認してください。
さらに、接続プロバイダー クラスを構成から分離することをお勧めします。これにより、永続化の柔軟性 (つまり、*.config から別のものへの切り替え) と簡単なテストが可能になります。
また、「NUnit が構成ファイルを検索する方法」も参照してください。
ライブラリに app.config を使用して (テストがあると仮定します)、そこに配置できます。