我正在尝试设置一个 Visual Studio 解决方案,以促进:
BDD
使用SpecFlow http://www.specflow.org/
如 TekPub 上所述:http: //tekpub.com/view/concepts/5
我想:
将所有引用和依赖项保留在我的解决方案目录结构的根目录下
当我右键单击 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) 引用它.
我已经尝试过这里的建议:
它似乎仍在启动 TestDriven.Net 的 NUnit 版本,而不是为我安装的 NuGet。
我也不想手动复制和替换 TD.Net 安装的 NUnit 文件,因为这不允许特定于解决方案的依赖文件和源代码控制下的隔离。