如何在Visual Studio 2010中运行SpecFlow测试?

时间:2010-06-06 13:28:32

标签: visual-studio-2010 specflow

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

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

8 个答案:

答案 0 :(得分:81)

如果您希望能够直接从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。

答案 1 :(得分:10)

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任务来运行灯具......

答案 2 :(得分:6)

只是为了更新这些问题,在你应该使用的最新版本的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

答案 3 :(得分:4)

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

答案 4 :(得分:4)

引起我兴趣的东西。我必须确保项目类型是一个测试项目。我不得不卸载项目并将Project GUID更改为Unit Test Project的项目。一旦我这样做,项目中的SpecFlow(以及任何其他)测试就会栩栩如生

答案 5 :(得分:3)

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

答案 6 :(得分:2)

我创建了一个视频演示了如何将Specflow与VS2010 here

一起使用

答案 7 :(得分:0)

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