41

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

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

4

8 回答 8

82

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

于 2010-06-14T15:37:58.717 回答
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 任务来运行固定装置...

于 2010-06-07T06:49:04.827 回答
6

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

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

请参阅SpecFlow 错误地使用 NUnit

于 2012-02-05T00:27:10.980 回答
4

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

于 2011-02-18T13:21:20.900 回答
4

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

于 2012-02-28T13:31:33.567 回答
3

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

于 2010-06-06T14:21:30.083 回答
2

我创建了一个视频,演示如何在此处使用 Specflow 和 VS2010

于 2011-11-16T18:21:04.453 回答
0

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

于 2012-01-19T16:09:12.707 回答