并行运行场景后,检查specflow中的场景完成状态

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

我已经在其他地方看到了这个问题的各个方面,但是没有可靠的答案,所以我理想地希望运行几个[AfterScenario]绑定并根据完成状态做一些逻辑,即它是否通过/失败,以及它是如何失败的等等

我知道有一个ScenarioContext.Current.TestError和一些其他相关的类,但我找不到文件,表明这是否可以在并行运行测试时使用,所以上面的ScenarioContext可以在这个上下文中使用或者还有其他方法做到了吗?

specflow
1个回答
1
投票

您不能在并行执行中使用ScenarioContext.Current,但可以通过Context Injection获取当前的ScenarioContext(请参阅https://specflow.org/documentation/Context-Injection/

所以这适用于并行执行:

[Binding]
public class ScenarioStatusBinding
{
  private readonly ScenarioContext _scenarioContext;

  public ScenarioStatusBinding(ScenarioContext scenarioContext)
  {
    _scenarioContext = scenarioContext;
  }

  [AfterScenario]
  public void CheckStatusOfScenario()
  {
    Console.WriteLine(_scenarioContext.TestError);
    Console.WriteLine(_scenarioContext.ScenarioExecutionStatus);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.