我已经看到这个问题的其他方面,但是没有一个可靠的答案,因此理想情况下,我希望运行几个[AfterScenario]
绑定并根据完成状态做一些逻辑,即是否通过了/失败,以及如何失败等等。
我知道有一个ScenarioContext.Current.TestError
和一些其他相关的类,但是我找不到能并行运行测试时是否可以使用的文档,上面的ScenarioContext
也可以在这种情况下使用它还是有其他方法可以做到?
答案 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);
}
}