C# 如何使用Specflow+在Specflow中保留测试的单个会话;擅长

C# 如何使用Specflow+在Specflow中保留测试的单个会话;擅长,c#,session,selenium,bdd,specflow,C#,Session,Selenium,Bdd,Specflow,当登录到谷歌系统,我应该能够导航到所有菜单 @Login Scenario: Successful Login to Google Given Google system launched When Login with XYZ Then Google main page displayed @menuNavigate Scenario Outline: Navigate to page from google menu Given User navigates to <T

当登录到谷歌系统,我应该能够导航到所有菜单

@Login
Scenario: Successful Login to Google
 Given Google system launched
 When Login with XYZ
 Then Google main page displayed
@menuNavigate
Scenario Outline: Navigate to page from google menu 
    Given User navigates to <Tab> using the tabs
    When The Page is completely loaded with <Header>
    Then the result should be that a control with controlId <ControlId> is displayed on the screen

@source:menuNavigate.xlsx
Scenarios:
| Tab | Header  | ControlId |
@登录
场景:成功登录Google
鉴于谷歌系统启动
使用XYZ登录时
然后显示谷歌主页
@梅努那格
场景大纲:从google菜单导航到页面
给定用户使用选项卡导航到
当页面完全加载了
然后,结果应该是在屏幕上显示具有controlId的控件
@来源:menunigate.xlsx
情节:
|选项卡|标题|控件ID|
@登录测试成功。当执行@menunigate测试时,它将启动单独的会话


是否有任何方法可以使用相同的浏览器会话继续测试的其余部分

通过在中创建浏览器实例,然后在每个场景中使用,您可能可以在每个功能的基础上执行此操作(即,您可以在功能的所有场景中重用相同的浏览器)。只要您的
[beforeFeature
[BeforeScenario]
钩子在同一个类中,您就可以声明一个静态字段来保存浏览器实例,并将其填充到
[beforeFeature]
钩子中,然后重用
[BeforeScenario]
钩子中的字段

但是考虑一下你是否真的想这么做。如果你的场景以不同的顺序运行会发生什么?没有什么可以保证测试执行顺序。或者并行?

我高度怀疑这种方法在长期内是否能很好地推广

如果你想有一些共同的设置,那么或者创建一个步骤来进行设置,并从每个场景调用它。即使你想让设置步骤执行一些已经在另一个测试中使用的操作,你也可以