C#Specflow-不使用FeatureContext和ScenarioContext就需要特征和方案标题

时间:2018-07-31 13:18:49

标签: c# nunit specflow context-injection

我有一个hooks.cs绑定文件,其中包含beforeTestRun,BeforeFeature和BeforeScenario。我需要当前功能的标题和方案以用于日志和报告目的。由于我正在并行运行测试,所以contextcontext会引发异常,如The ScenarioContext。当前的静态访问器无法在多线程执行中使用。...

有什么办法可以在多线程执行中获得当前功能部件标题和方案名称?

谢谢

1 个答案:

答案 0 :(得分:2)

是的,您可以通过构造函数注入获得当前的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。