以前,当我只有 Visual Studio 2010 时,我的单元测试执行得很好。
基本上,我的测试由两个文件组成:UnitTests.dll 和 UnitTests.dll.config。UniTests.dll.config 有一个自定义探测 privatePath(例如,Public;Extensions;Lib)
为了执行,我曾经遵循以下工作流程: 1. 我将两个文件(即 UnitTests.dll 和 .config)复制到我的测试应用程序所在的文件夹中。2. 打开 NUnit 界面。3. 在禁用 ShadowCopy 的情况下执行测试,因为我的测试需要从我正在测试的应用程序中加载 dll。
这工作正常!
安装 Visual Studio 2012 后,测试不再运行。后来,我想出了一个解决方法,但我不想在我的解决方案中使用它。
现在,我必须按照这个工作流程来运行测试:
- 我将这两个文件(即 UnitTests.dll 和 .config)复制到我正在测试的应用程序所在的文件夹中。
- 我将所有 NUnit 安装文件(即 nunit-agent、nunit-console 等)复制到我正在测试的应用程序所在的文件夹中。
- 我从 nunit-agent.dll.config 更改了探测 privatePath,以便包含来自我的 UnitTests.dll.config 的相同路径。
- 打开位于我的应用程序测试文件夹下的 NUnit gui。
- 在禁用 ShadowCopy 的情况下执行测试。
请注意,我必须包含第 2 步和第 3 步才能运行我的单元测试。不知何故,我认为 nunit-agent.dll 没有从我的测试程序集的配置文件中加载探测 privatePath。
有谁知道为什么会这样?有没有人有一种解决方法,我不需要更改 nunit-agent.dll.config 并复制 nunit 安装文件?
提前致谢。