C# Specflow - 需要功能和场景标题而不使用 FeatureContext 和 ScenarioContext

C# Specflow - Need Feature and Scenario Title without using FeatureContext and ScenarioContext

我有一个 hooks.cs 绑定文件,其中包含 BeforeTestRun、BeforeFeature 和 BeforeScenario。我需要当前功能和场景的标题以用于日志和报告目的。由于我是 运行 并行测试,ScenarioContext 抛出异常为:

The ScenarioContext.Current static accessor cannot be used in multi-threaded execution...

有什么方法可以在 multi-threaded 执行中获取当前的功能标题和场景标题?

是的,您可以通过构造函数注入获取当前的FeatureContext和ScenarioContext。

public class MyBindingClass
{
  private ScenarioContext scenarioContext;

  public MyBindingClass(ScenarioContext scenarioContext)
  {
    this.scenarioContext = scenarioContext;
  }

  [When("I say hello to ScenarioContext")]
  public void WhenISayHello()
  {
    // access scenarioContext here
  }
}

参见https://specflow.org/documentation/ScenarioContext/ - 在底部注入 ScenarioContext。