我想在关闭浏览器之前登录一次,然后运行几个场景(比方说7个场景)。
我使用的是Background,而不是让我登录每个场景,但似乎每次运行场景时都会先登录。
这会减慢我的测试速度。
我想做什么:
在同一浏览器窗口中登录并运行多个方案,然后在完成后关闭它。
答案 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等)
希望这能让你走上正确的道路!