并行运行方案后,在specflow中检查方案完成状态

时间:2018-09-10 13:56:19

标签: specflow

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

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

1 个答案:

答案 0 :(得分:1)

您不能在并行执行中使用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);
  }
}