使用SpecFlow通过配置设置Test Runner Tool

时间:2012-03-14 14:02:40

标签: specflow

在使用具有此配置的SpecFlow的项目中:

<unitTestProvider name="MsTest.2010" />

仅使用默认的Visual Studio设置时,测试正常。

安装ReSharper后,上下文菜单命令“Run SpecFlow Scenarios”和“Debug SpecFlow Scenarios”停止工作;选中后,没有任何反应。

这似乎是因为ReSharper将其自己的测试运行器设置为默认值。解决方法是打开选项对话框(工具|选项| SpecFlow |默认),在“测试执行”部分中,将“测试运行器工具”显式设置为“MsTest”。

不幸的是,在设置新的开发机器时,有时我们忘记设置这个并且安装ReSharper后测试停止工作,有人必须记住这是解决方法。

问题是:是否可以在配置文件中设置“Test Runner Tool”选项,使其保留在项目中,而不是在用户设置中?这是unitTestProvider设置的runtimeProvider属性用于什么?

1 个答案:

答案 0 :(得分:2)

我知道你问过VS2010,但考虑到你的问题的年龄,我想我会在VS2012中尝试一下。我能够让SpecFlow与MSTest一起使用而不改变Tools \ Options \ SpecFlow \ Test Runner Tool设置(即将其保留为“Auto”):

  1. 将SpecFlow Extension安装到Visual Studio 2012
    • 选择工具\扩展程序和更新
    • 搜索“Specflow”
    • 安装扩展程序
    • 重新启动Visual Studio 2012(在执行此操作之前,SpecFlow菜单项可能不会显示)
  2. 创建新的类库项目(例如MyProject.spec)
  3. 通过nuget添加Specflow包
    • 右键单击项目引用节点
    • 选择管理NuGet包
    • 搜索“Specflow”
    • 选择“安装”
  4. 配置SpecFlow
    • 打开app.config文件
    • 添加以下条目:
    • 右键单击项目引用节点
    • 在&lt; specFlow&gt;内添加以下条目node:&lt; unitTestProvider name =“MsTest”/&gt;
  5. 创建新功能
    • 右键单击项目节点
    • 选择添加\新项目\ SpecFlow要素文件
  6. 将单元测试装配添加到项目中
    • 右键单击项目引用节点
    • 选择“添加参考”
    • 搜索程序集“Microsoft.VisualStudio.QualityTools.UnitTestFramework”
    • 添加程序集
  7. 生成步骤定义
    • 双击要素文件以将其打开
    • 右键单击要素文件底部的空白区域
    • 选择“生成步骤定义”
  8. 运行测试
    • 选择“测试资源管理器\全部运行
  9. 此时测试应该正常运行