9

我正在尝试设置一个 Visual Studio 解决方案,以促进:

我想:

  • 将所有引用和依赖项保留在我的解决方案目录结构的根目录下

  • 当我右键单击 TestDriven.NET 提供的项目时,可以使用“使用 NUnit 进行测试”命令。

我不想:

  • 使用 TestDriven.NET 为自己安装的 NUnit 版本

我确实想:

  • “使用 NUnit 测试”命令为我使用 NuGet 在我的解决方案的子目录下安装的 NUnit 版本

更多细节和我已经尝试过的:

当您安装 TestDriven.NET 时,它会将自己的 NUnit 版本放置在如下路径中:

  • \Program Files (x86)\TestDriven.NET 3\NUnit\2.5

当您使用 NuGet 安装最新版本的 NUnit 时,它会将 NUnit 放置在如下路径中:

  • 解决方案_root\packages\NUnit.2.5.10.11092

NuGet 会自动为您添加对 \packages\NUnit.2.5.10.11092\lib\nunit.framework.dll 的引用。如果您碰巧想使用 TD.Net 菜单轻松执行 NUnit 测试,那么该参考几乎毫无价值,因为 TD.Net 实际上并没有使用 NuGet 刚刚为您设置的 NUnit dll。

  • 如何强制 TestDriven.Net 的菜单使用我的解决方案路径中引用的 NUnit dll,而不是它安装在 \Program Files (x86)\TestDriven.NET 3\NUnit\ 下的 NUnit dll?

或者

  • 如果这不可能,是否有一个简单的快捷键/菜单命令可以在不使用 TestDriven.Net 的情况下使用我的解决方案文件夹下的 NUnit 执行 SpecFlow 测试?

我为什么要这样做?

我用 NuGet 安装了 NUnit,这样我就可以将测试框架库保存在我的解决方案中并处于源代码控制之下。我需要能够在我的解决方案路径 (Solution_root\packages\NUnit.2.5.10.11092) 下引用 nunit.framework.dll 之类的东西,而不是从 (\Program Files (x86)\TestDriven.NET 3\NUnit\2.5) 引用它.

我已经尝试过这里的建议:

我也不想手动复制和替换 TD.Net 安装的 NUnit 文件,因为这不允许特定于解决方案的依赖文件和源代码控制下的隔离。

4

1 回答 1

3

不确定这正是你所追求的,但这里有:

在 Visual Studio 下(我使用的是 2010):

  1. 转到工具->选项->测试驱动->测试运行器
  2. 本部分列出了 TD.NET 随附的所有预配置测试运行程序。
  3. 运行注册表。
  4. 转到:*HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MutantDesign\TestDriven.NET\TestRunners* 这在 32 位操作系统下会有所不同。
  5. 添加一个新密钥 NUnit 2.5.X(只需复制另一个密钥并更改您需要的任何设置)。

  6. 重新启动 Visual Studio。

  7. 在第 1 步的菜单下,您会找到新的测试运行程序。
  8. 单击它并保存。

从现在开始,您的测试将使用您配置的测试运行器运行。

于 2011-07-09T21:37:00.940 回答