我有一个PowerShell脚本,它通过调用nunit-console-x86.exe
来运行在先前通过调用MSBuild编译VS .sln后生成的程序集(DLL)中的测试。
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会搜索位于启动站点/服务.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进行配置设置吗?