我在ExtentReports中使用功能名称和步骤详细信息。当我执行单个测试时,它工作正常。如果我尝试并行执行测试,这是抛出错误,则不应在多线程中使用上下文。
答案 0 :(得分:2)
您可以在并行执行中使用场景上下文和功能上下文。但是您需要通过DI来获取它,而不要使用静态的Current属性。
这里是使用DI获取ScenarioContext的示例。
[Binding]
public class StepsWithScenarioContext
{
private readonly ScenarioContext scenarioContext;
public StepsWithScenarioContext(ScenarioContext scenarioContext)
{
this.scenarioContext = scenarioContext;
}
[BeforeScenario()]
public void GivenIPutSomethingIntoTheContext()
{
var title = this.scenarioContext.ScenarioInfo.Title;
//....
}
}
文档在这里:https://specflow.org/documentation/Parallel-Execution/-线程安全的ScenarioContext,FeatureContext和ScenarioStepContext