从NuGet安装NUnit后,如何强制TestDriven.Net使用NuGet引用的NUnit dll?

Ker*_*rry 9 nunit unit-testing testdriven.net visual-studio nuget

我正在尝试设置一个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放在如下路径中:

  • Solution_root \包\ 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?

要么

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

我为什么要这样做?

我使用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文件,因为它不允许在源代码管理下使用特定于解决方案的依赖文件和隔离.

lys*_*cid 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. 单击它并保存。

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