尝试使用全新的VS2010 Professional安装运行SpecFlow。创建了一个新的控制台应用程序并添加了对NUnit和SpecFlow的引用。创建了SpecFlow功能。创建具有默认模板代码的.feature。
现在我尝试运行此测试,但我不明白如何。当我右键单击项目(在顶层)时,鼠标下拉菜单中没有“运行测试”选项。没有SpecFlow正确安装,我缺少一些参考或我需要安装的其他工具吗?
答案 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>
答案 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