我已经在其他地方看到了这个问题的各个方面,但是没有可靠的答案,所以我理想地希望运行几个[AfterScenario]
绑定并根据完成状态做一些逻辑,即它是否通过/失败,以及它是如何失败的等等
我知道有一个ScenarioContext.Current.TestError
和一些其他相关的类,但我找不到文件,表明这是否可以在并行运行测试时使用,所以上面的ScenarioContext
可以在这个上下文中使用或者还有其他方法做到了吗?
您不能在并行执行中使用ScenarioContext.Current,但可以通过Context Injection获取当前的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);
}
}