2012-02-27 66 views
10

我正在使用Specflow(http://specflow.org/)编写一些集成测试,我想运行一个场景。有什么方法可以用Resharper 6运行单一场景?顺便说一下,我配置specflow使用MSTest。如何在Resharper中运行单个Specflow场景

我Specflow测试看起来像:

Feature: Customer management 

Scenario: Add a new Customer into system 
    Given the User has entered the customer with the following data 
    | name | last_name | birthday | 
    | Peter | Stein  | 12.09.1955 | 
    When the User has pressed the Save Button 
    Then the following customer should be stored in the data base 
    | name | last_name | birthday | 
    | Peter | Steim | 12.09.1955 | 

Scenario: Second scenario..... 

Scenario: Third scenario..... 

我想只运行第一个场景。

回答

10

如果您正在使用ReSharper运行,那么我只需打开功能文件,右键单击场景中的任意位置,然后从弹出式菜单中选择“运行Specflow场景”。它只运行你所处的一种场景。

请注意,我使用ReSharper来运行测试。

0

每个场景应该最终成为一个MSTest。在ReSharper中,我通常会进入单元测试浏览器(Control + Alt + U),确保将设置为项目和命名空间,然后导航到我的验收测试项目,打开我的命名空间功能(我将目录中的功能文件放在匹配的命名空间中),然后展开该功能以查看所有单个测试/场景。只选择其中一个,然后单击“运行”或“调试”按钮应执行该测试。

+0

嗨迈克尔,谢谢你的回答。这是一个很好的解决方案,但它似乎是一个解决方法。我正在寻找的是插件或其他方式来运行场景,就像单元测试一样。 – Diego 2012-02-28 08:12:41

+0

我很困惑你的评论。 SpecFlow将每个场景转换为单元测试。我的答案是解释如何运行一个单元测试,这恰好是一种情况。也许我不明白你在找什么...... – 2012-02-29 16:31:03

+0

嗨迈克尔,你是对的,specflow将每个情景转化为单元测试,并且你的建议很有用。不过,我想到了一个解决方案,我在编辑器中选择一个场景,然后运行它。例如使用resharper编辑单元测试时,为了执行它,我们有一个绿色的点。有了你的建议,我必须搜索生成的单元测试,并且当我有很多方案时需要一些时间。也许我正在寻找一个选项,它不是仍然在Resharper中实现。你懂我的意思吗? – Diego 2012-02-29 22:46:05

1

我所做的是弹出打开生成的c#文件,并在那里找到生成的测试,并使用我设置的resharper测试运行器来执行规格的键盘快捷键(并可以使用绿色/黄色球与鼠标太)。它不是理想的,我同意如果你只是从特性文件执行,那将是非常棒的。我还没有在那里找到任何类似的东西。将是一个有价值的项目,试图找出一种方式来实现插件的发生。不知道会发生什么。

相关问题