我有一個PowerShell腳本,它可以通過shell向外運行到nunit-console-x86.exe
以運行在腳本中通過對MSBuild進行shelling編譯的VS中構建的程序集(DLL)中的測試的.slnnUnit測試尋找{程序集名稱} .dll.config
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
中搜索這些配置設置,但是此文件不存在,因爲我的腳本無法創建它(原因如下)。
每個測試項目.csproj都包含一個本地App.config文件。當在Visual Studio中運行測試項目的測試時,nUnit會在本地App.config中搜索配置設置。這種行爲正如我所料。
我也有一個應用程序.sln作爲其啓動項目的站點/服務.csproj,加上對各種測試項目的引用。當我從Visual Studio運行應用程序.sln的整個測試套件時,在運行任何測試項目的測試時,nUnit會在測試項目的本地App.config中搜索配置設置。
這種行爲不像我預期的那樣 - 我以爲nUnit會搜索位於啓動站點/ service .csproj中的web.config。
作爲一個實驗,我從其中一個測試項目中刪除了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
從我提供的配置文件路徑作爲參數加載配置設置嗎?我可以以不同的方式組織我的.sln和/或.csproj,以便使uUnit使用Web.config進行配置設置嗎?