尝试在全新的VS2010专业版中运行SpecFlow。创建了一个新的控制台应用程序,并添加了对NUnit和SpecFlow的引用。创建了一个SpecFlow功能。生成了带有默认模板代码的.feature文件。
现在我尝试运行此测试,但我不知道如何运行。当我右键单击项目(在顶层),鼠标下拉菜单中没有“运行测试”选项。是SpecFlow安装不正确,还是我缺少一些引用或其他需要安装的工具?
尝试在全新的VS2010专业版中运行SpecFlow。创建了一个新的控制台应用程序,并添加了对NUnit和SpecFlow的引用。创建了一个SpecFlow功能。生成了带有默认模板代码的.feature文件。
现在我尝试运行此测试,但我不知道如何运行。当我右键单击项目(在顶层),鼠标下拉菜单中没有“运行测试”选项。是SpecFlow安装不正确,还是我缺少一些引用或其他需要安装的工具?
<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>
生成的代码后台文件中将包含MsTest测试,这些测试可以被Visual Studio识别并且可以使用内置的测试运行器运行。
完全不需要使用NUnit。
SpecFlow本身不提供Runner。
SpecFlow为常见的单元测试框架生成夹具。在SpecFlow 1.3中,支持NUnit(默认)、MSTest和xUnit.net(在App.config中配置)。
要运行这些夹具,您必须使用能够运行它们的Runner。
ReSharper是VisualStudio集成的非常好的测试Runner选项,但它并不免费。 ReSharper会在解决方案资源管理器中提供“运行单元测试”上下文菜单。
VisualStudio 集成的另一个选择是TestDriven.Net(也提供上下文菜单)。
对于NUnit,您还可以使用NUnit自带的Runner(有GUI-Runner和命令行Runner)。
对于MSTest,您可以使用本机VisualStudio集成来运行测试(但我认为有点笨拙)。
xUnit.net也带有其Runners,但我不熟悉它们。
此外,您可以使用MSBuild任务来运行这些夹具...
仅供更新此问题,在最新版本的SpecFlow中,您应该使用(使用MsTest.2010)
<configSections>
<section
name="specFlow"
type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
<unitTestProvider name="MsTest.2010" />
</specFlow>
。
我已经撰写了一篇关于如何使用批处理文件作为外部工具在NUnit中自动运行SpecFlow功能并生成HTML报告的博客文章。请参见:http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/
有一件事让我出乎意料。我必须确保项目类型是测试项目。我需要卸载项目并将项目GUID更改为单元测试项目的GUID。一旦我这样做了,该项目中的SpecFlow(以及其他任何)测试就活跃起来了。
使用NUnit (GUI)运行Specflow测试需要外部调用,或者可以安装TestDriven.net或Resharper来支持从Visual Studio内部运行测试。
我已经制作了一个视频,演示如何在VS2010中使用Specflow,视频链接在此