C# 运行登录场景一次,然后运行多个场景
我想登录一次,然后在关闭浏览器之前运行几个场景(比如7个场景) 在每个场景中,我都使用了后台而不是给定的I am loggedin,但似乎每次运行场景时,它都首先登录 这减慢了我的测试速度 我想做的是:C# 运行登录场景一次,然后运行多个场景,c#,specflow,scenarios,C#,Specflow,Scenarios,我想登录一次,然后在关闭浏览器之前运行几个场景(比如7个场景) 在每个场景中,我都使用了后台而不是给定的I am loggedin,但似乎每次运行场景时,它都首先登录 这减慢了我的测试速度 我想做的是: 登录并在同一浏览器窗口上运行多个方案,然后在完成后将其关闭。您要查找的是Specflow挂钩 您将无法在后台将“登录”指定为一个步骤,而是标记需要登录的每个场景 例如: @alreadyLoggedIn Scenario: user can see XYZ Given... @alr
登录并在同一浏览器窗口上运行多个方案,然后在完成后将其关闭。您要查找的是Specflow挂钩 您将无法在后台将“登录”指定为一个步骤,而是标记需要登录的每个场景 例如:
@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等)
希望这能让你走上正确的道路 这让我走上了正确的道路。。非常感谢。这将带来巨大的不同。另一种方法是:在功能级别上提供背景。@fancpi:不,有点反直觉,背景在功能中的每个场景之前执行,而不是每个功能执行一次。背景是减少重复步骤定义的一种方法,但它们不能消除步骤本身的执行。