运行一次登录方案,然后运行多个方案

时间:2013-01-24 13:52:41

标签: c# specflow scenarios

我想在关闭浏览器之前登录一次,然后运行几个场景(比方说7个场景)。

我使用的是Background,而不是让我登录每个场景,但似乎每次运行场景时都会先登录。

这会减慢我的测试速度。

我想做什么:

在同一浏览器窗口中登录并运行多个方案,然后在完成后关闭它。

1 个答案:

答案 0 :(得分:3)

您正在寻找的是Specflow Hooks。

https://github.com/techtalk/SpecFlow/wiki/Hooks

您将无法在后台指定“登录”作为步骤,而是标记您需要登录的每个方案。

示例:

@alreadyLoggedIn
Scenario: user can see XYZ
    Given...

@alreadyLoggedIn
Scenario: user can see ABC
    Given...

然后,您只需要在使用BeforeFeature属性修饰的方法中指定“登录”的代码。对于要素中的任何方案,此方法仅运行一次。

[BeforeFeature("alreadyLoggedIn")]
public void BeforeFeatureLoggedIn()
{
    // write code to log the person in
}

如果您需要测试不同的用户/角色,只需创建单独的标记(即adminAlreadyLoggedIn,salesAlreadyLoggedIn等)

希望这能让你走上正确的道路!