有没有其他方法可以在不使用Context的情况下在SpecFlow C#中获取功能名称?

问题描述 投票:1回答:1

我正在使用ExtentReports中的功能名称和步骤详细信息。当我执行个人测试时,它工作正常。如果我尝试在并行执行测试它是抛出错误,我们不应该在多线程中使用Context。

c# specflow parallel-extensions
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.