Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行登录场景一次,然后运行多个场景_C#_Specflow_Scenarios - Fatal编程技术网

C# 运行登录场景一次,然后运行多个场景

C# 运行登录场景一次,然后运行多个场景,c#,specflow,scenarios,C#,Specflow,Scenarios,我想登录一次,然后在关闭浏览器之前运行几个场景(比如7个场景) 在每个场景中,我都使用了后台而不是给定的I am loggedin,但似乎每次运行场景时,它都首先登录 这减慢了我的测试速度 我想做的是: 登录并在同一浏览器窗口上运行多个方案,然后在完成后将其关闭。您要查找的是Specflow挂钩 您将无法在后台将“登录”指定为一个步骤,而是标记需要登录的每个场景 例如: @alreadyLoggedIn Scenario: user can see XYZ Given... @alr

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

在每个场景中,我都使用了后台而不是给定的I am loggedin,但似乎每次运行场景时,它都首先登录

这减慢了我的测试速度

我想做的是:


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

您要查找的是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:不,有点反直觉,背景在功能中的每个场景之前执行,而不是每个功能执行一次。背景是减少重复步骤定义的一种方法,但它们不能消除步骤本身的执行。