【发布时间】:2012-09-16 07:36:21
【问题描述】:
我有一个 PowerShell 脚本,它转出到 nunit-console-x86.exe 以运行程序集 (DLL) 中的测试,这些程序集 (DLL) 是在脚本中通过转入 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 用于配置设置吗?
【问题讨论】:
标签: visual-studio-2010 powershell web-config nunit app-config