Specflow并行执行AfterFeature替代方法?

问题描述 投票:0回答:1

我的测试套件当前具有并行运行的功能,并且每个功能中的场景都一个接一个地运行,而不必在两个场景之间重置Webdriver。一切都很好,但是我在整个功能完成后仍在努力寻找一种拆解的好方法,我不能使用AfterFeature,因为它要求我的webdriver是静态的,并且会阻止并行执行工作,如果我这样做了,在afterScenario中拆除后,我将需要针对每种情况重新启动Webdriver,这将不必要地占用更多时间。有什么方法可以使用FeatureContext或其他方法来确定当前场景是否是Feature中的最后一个场景?或其他类似的东西?我基本上需要一种无需使用Before / AfterFeature就可以确定当前方案是否已结束的方法

c# selenium nunit specflow
1个回答
0
投票

默认情况下,Specflow按字母顺序对场景进行排序,但是您可以通过以开头以数字命名的场景来解决它,例如01 - Login02 - Logout。然后使用注释中建议的方法。在AfterScenario钩上:

  1. 获取所有方案名称并对其进行排序
  2. 获取最后一个方案名称
  3. 如果等于当前方案,请重置Web驱动程序实例。

没有任何东西会被硬编码,并且将适用于您的所有套件。但是您应该从头开始使用index来命名。

© www.soinside.com 2019 - 2024. All rights reserved.