我正在使用ExtentReports中的功能名称和步骤详细信息。当我执行个人测试时,它工作正常。如果我尝试在并行执行测试它是抛出错误,我们不应该在多线程中使用Context。
您可以在并行执行中使用场景上下文和功能上下文。但是你需要通过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