我有一个 PowerShell 脚本,它可以通过外壳nunit-console-x86.exe
到 MSBuild 来编译 VS .sln
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 用于配置设置吗?