4

nunit-console-x86.exeVS .slnをコンパイルするためにMSBuildにシェル化することにより、スクリプトの前半でビルドされたアセンブリ(DLL)でテストを実行するためにシェルアウトするPowerShellスクリプトがあります。

Exec { invoke-expression "$BUILD_DIR\Tools\NUnit.2.5.10.11092\nunit-console-x86.exe  $full_test_assembly_name /xml:test-results/$test_results_file_name" }

これらのテストの一部は、System.Configuration.ConfigurationManager構成設定をロードするために利用されます。 nunit-console-x86.exeでこれらの構成設定を検索します{$full_test_assembly_name}.dll.configが、スクリプトが作成しないため、このファイルは存在しません(以下で説明する理由により)。

各test-project.csprojには、ローカルのApp.configファイルが含まれています。テストプロジェクトのテストがVisualStudioで実行されると、nUnitはローカルのApp.configで構成設定を検索します。この動作は私が期待したとおりです。

また、スタートアッププロジェクトとしてsite / service .csprojを含むアプリケーション.slnと、さまざまなテストプロジェクトへの参照があります。Visual Studioからアプリケーション.slnのテストスイート全体を実行すると、テストプロジェクトのテストを実行すると、nUnitはテストプロジェクトのローカルApp.configで構成設定を検索します。

この動作は私が期待したものではありません-nUnitがスタートアップサイト/サービス.csprojにあるweb.configを検索すると思っていたでしょう。

実験として、テストプロジェクトの1つからApp.configを削除しました。Visual Studioでテストを実行すると、nUnitは検出できないエラーをスローします{test-project-assembly-name}.dll.config。したがって、明らかにuUnitはデフォルトでで構成設定を検索します{test-project-assembly-name}.dll.config

テストスクリプトでnUnitを呼び出してテストアセンブリテストを実行し、構成設定がweb.config(ビルドスクリプトがビルドターゲットディレクトリにコピーする)から読み込まれるようにします。

どうすればこれを達成できますか?nunit-console-x86.exeパラメータとして指定したconfig-file-pathからconfig-settingsをロードするように指示できますか?.slnや.csprojの構造を変えて、uUnitが構成設定にWeb.configを利用できるようにすることはできますか?

4

3 に答える 3

3

これに対する解決策は、コンソール スイッチを使用すること/domain=multipleです。アセンブリごとに個別の AppDomain を使用するように既定のドメイン使用設定を変更すると、NUnit はプロジェクト app.config をロードします。このオプションは、NUnit 2.5 以降でのみ使用できます。

nunit-console your.project.csproj /domain=multiple
于 2014-04-02T18:03:06.420 に答える
0

簡単な答えは、NUnit は構成ファイルを管理しないということです。構成ファイルの処理はフレームワークに任せます。

http://nunit.net/blogs/?p=9

NUnit で特定の構成ファイルを使用する場合は、NUnit プロジェクトを作成し、使用する構成ファイルを [NUnitProjectName].config にコピーします。この構成ファイルは、NUnit プロジェクトと同じディレクトリに存在する必要があります。

于 2012-10-05T18:00:12.033 に答える