【问题标题】:How to run SpecFlow tests in Visual Studio 2010?如何在 Visual Studio 2010 中运行 SpecFlow 测试?
【发布时间】:2011-02-28 09:13:50
【问题描述】:

尝试使用全新的 VS2010 Professional 安装运行 SpecFlow。创建了一个新的控制台应用程序并添加了对 NUnit 和 SpecFlow 的引用。创建了 SpecFlow 功能。创建了具有默认模板代码的 .feature。

现在我尝试运行这个测试,但我不明白怎么做。当我右键单击项目(在顶层)时,鼠标下拉菜单中没有“运行测试”选项。 SpecFlow 是否安装不正确,我是否缺少一些参考资料或需要安装的其他工具?

【问题讨论】:

  • 添加 VS 扩展“nunit 测试适配器”,将 nunit 测试放入 VS 测试运行器中。

标签: visual-studio-2010 specflow


【解决方案1】:

如果您希望能够直接从 Visual Studio 2010 运行测试而不需要任何其他工具或扩展,那么您应该配置 SpecFlow 以使用 MsTest 作为其单元测试框架。

这可以在您的应用程序配置文件中使用以下内容完成:

  <configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest" /> 
    <!--
        Use this if you're running VS2010
        <unitTestProvider name="MsTest.2010" />
    -->
  </specFlow> 

然后,生成的代码隐藏文件将包含 Visual Studio 可识别的 MsTest 测试,并且可以使用 build-it 测试运行程序运行。

根本不需要使用 NUnit。

【讨论】:

【解决方案2】:

SpecFlow 本身不提供运行器。
SpecFlow 为常见的单元测试框架之一生成夹具。在 SpecFlow 1.3 NUnit(默认)中,支持 MSTest 和 xUnit.net(在 App.config 中配置)。

要运行固定装置,您必须使用能够运行它们的运行器。 对于集成在 VisualStudio 中的测试运行器来说,ReSharper 是一个非常好的选择,但它不是免费的。 ReSharper 在解决方案资源管理器中为您提供了“运行单元测试”上下文菜单,您指的是。

VisualStudio 集成的替代方法是 TestDriven.Net(也提供上下文菜单)。

对于 NUnit,您还可以使用 NUnit 本身附带的运行器(有一个 GUI-Runner 和一个命令行运行器)。
对于 MSTest,您可以使用本机 VisualStudio 集成来运行测试(但是我觉得这有点笨拙)。
xUnit.net 也附带了它的运行器,但是我对它们并不熟悉。

此外,您可以使用 MSBuild 任务来运行固定装置 ...

【讨论】:

  • 您可以添加提到的工具的链接,以便更容易找到。
【解决方案3】:

只是为了更新这个问题,在你应该使用的最新版本的 specflow 中,(使用 MsTest.2010)

<configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest.2010" /> 
  </specFlow> 

SpecFlow wrongly using NUnit

【讨论】:

    【解决方案4】:

    我写了一篇关于如何使用批处理文件作为外部工具在 NUnit 中自动运行 SpecFlow 功能并生成 html 报告的博客文章。见:http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/

    【讨论】:

      【解决方案5】:

      有些东西让我很吃惊。我必须确保项目类型是一个测试项目。我不得不卸载项目并将项目 GUID 更改为单元测试项目的 GUID。一旦我这样做了,项目中的 SpecFlow(和任何其他)测试就开始了

      【讨论】:

      • 好答案,我没有意识到我添加了错误的项目类型,但这有帮助。
      【解决方案6】:

      Specflow 测试使用 NUnit (GUI) 运行,需要从外部调用,或者可以安装 TestDriven.net 或 Resharper 以支持从 Visual Studio 内部运行测试。

      【讨论】:

        【解决方案7】:

        我制作了一个视频,演示如何在 VS2010 here987654321@ 中使用 Specflow

        【讨论】:

        • 非常不错的视频 - 从第 24 分钟开始直接使用 SpecFlow 和 MsTest。配置文件在第 29 分钟出现。
        【解决方案8】:

        您还可以尝试 Visual Nunit,它是 Visual Studio 2008 和 2010 的开源 NUnit 测试运行器插件。使用 NuGet 获取它,有关详细信息,请参阅 http://www.bubblecloud.org/visualnunit

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-09
          • 2014-03-14
          • 1970-01-01
          • 2020-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-04
          相关资源
          最近更新 更多