5

NUnit を使用して ASP.NET アプリケーションをテストしたいのですが、NUnit GUI から実行すると WebConfigurationManager.ConnectionStrings コレクションが空のようです。

このコレクションを初期化する方法を教えてください (おそらく [TestFixture] の [SetUp] 関数で)。Web.config をどこかにコピーする必要がありますか?

ありがとうございました!

4

3 に答える 3

9

NUnit .config ファイルの場所は、NUnit プロジェクト ファイルの作成方法によって異なります

NUnit テストの .config ファイルが配置される場所は、ここにある他の投稿が示唆するよりも少し複雑です。NUnit GUI Project/Edit ダイアログに、このための設定があります。デフォルト値はすべて、NUnit プロジェクト ファイルの作成方法によって異なります。

NUnit GUI を開いて File/Open を選択し、.dll ファイルを選択すると、新しいプロジェクトがセットアップされ、同じディレクトリ内の dll と同じ名前の構成ファイルを検索するように設定されます。したがって、ロードした場合、\bin\debug\MyTests.dllNUnit は\bin\Debug\MyTests.dll.configデフォルトで検索します。これに関する唯一の問題は、リリース ビルドを作成するときに別の NUnit プロジェクトを作成する必要があることです。

File/NewProject を選択して NUnit プロジェクトを作成した場合、デフォルト設定では、NUnit プロジェクトと同じ名前の構成ファイルを検索します。したがって、\MyNUnitProject.nunitNUnitを作成した場合\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。リリース構成についても同じことを行います。

于 2008-11-05T18:20:59.533 に答える
7

Company.Component.Tests.dll という名前の単体テスト アセンブリがある場合は、Company.Component.Tests.dll.config が適切な接続文字列と共にそこにあることを確認してください。

さらに、接続プロバイダー クラスを構成から分離することをお勧めします。これにより、永続化の柔軟性 (つまり、*.config から別のものへの切り替え) と簡単なテストが可能になります。

また、「NUnit が構成ファイルを検索する方法」も参照してください。

于 2008-09-30T11:22:05.737 に答える
1

ライブラリに app.config を使用して (テストがあると仮定します)、そこに配置できます。

于 2008-09-30T11:07:16.147 に答える