通过BeforeTestRunHook SpecFlow在FeatureContext中设置BrowserSession

时间:2019-03-18 01:33:48

标签: c# .net specflow

此处是使用SpecFlow和c#的初学者。

我正在尝试将学校项目的登录步骤从BeforeFeature移到BeforeTestRun,并且在BeforeTestRun钩子期间无法在FeatureContext中设置BrowserSession。

我收到此错误:

  

System.NullReferenceException:对象引用未设置为对象的实例。

    public sealed class Hooks
    {        
        [BeforeTestRun]
        public static void BeforeTestRun()
        {
        FeatureContextWrapper.BrowserSession = BrowserFactory.GetBrowser();
        }
    }

FeatureContextwrapper.cs

    public class FeatureContextWrapper
    {
        public static BrowserSession BrowserSession
        {
        get { return (BrowserSession)FeatureContext.Current["BrowserSession"]; }
        set { FeatureContext.Current.Set(value, "BrowserSession"); }
        }
    }

1 个答案:

答案 0 :(得分:0)

尝试创建您创建的类的实例。像这样:

public sealed class Hooks
{        
    [BeforeTestRun]
    public static void BeforeTestRun()
    {
        FeatureContextWrapper myWrapper = new FeatureContextWrapper();
        myWrapper.BrowserSession = BrowserFactory.GetBrowser();
    }
}