nunit-console-x86.exe
VS .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を利用できるようにすることはできますか?