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

Check scenario completion status in specflow in after scenario run in parallel

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

我知道有一个 ScenarioContext.Current.TestError 和其他一些相关的 类,但我找不到指示在并行测试 运行 时是否可以使用它的文档,所以是以上 ScenarioContext 可以在这种情况下使用还是有其他方法可以做到这一点?

您不能在并行执行中使用ScenarioContext.Current,但您可以通过上下文注入获取当前的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);
  }
}