无法应用SpecFlow来使用BDD:定位器对象的SearchContext不能为null

时间:2018-05-31 09:39:02

标签: c# selenium null appium specflow

我已经在我的项目中使用OneTimeSetup / TearDown和POM应用了Nunit。我可以使用UnitTest运行我的测试,如下所示:

[TestFixture]
public class UnitTest2 : AFixture
{
    [Test]
    public void TestMethod1()
    {
        CurrentPage = GetInstance<LoginPage>();
        CurrentPage.As<LoginPage>().Login("myname");
        CurrentPage.As<LoginPage>().GoToAuthenPage();
        CurrentPage.As<AuthenPage>().VerifyAuthen();
        CurrentPage.As<AuthenPage>().ClickContinue();
        CurrentPage.As<AuthenPage>().VerifyLogin();
    }
}

但是当我尝试使用Specflow和Feature文件+ Stepdef时,它不再起作用了

我的专题文件:

@LoginFeature
Scenario: LoginFeature
Given User open App
When Login in with username as "myname"
Then User should be navigated to AuthenPage

我的Stepdefs课程:

[Binding]
[Scope(Feature = "LoginFeature")]
public sealed class LoginSteps : AFixture
{
    [Given(@"User open App")]
    public void GivenUserOpenApp()
    {
        CurrentPage = GetInstance<LoginPage>();
    }
    [When(@"Login in with username as ""(.*)""")]
    public void WhenLoginInWithUsernameAs(string p0)
    {
        CurrentPage.As<LoginPage>().Login("myname");
        CurrentPage.As<LoginPage>().GoToAuthenPage();
    }
    [Then(@"User should be navigated to AuthenPage")]
    public void ThenUserShouldBeNavigatedToAuthenPage()
    {
        CurrentPage.As<AuthenPage>().VerifyAuthen();
    }

}

我尝试运行时抛出此错误:

消息:System.Reflection.TargetInvocationException:调用目标已抛出异常。 ----&GT; System.ArgumentException:定位器对象的SearchContext不能为null 参数名称:locator

我不知道为什么代码可以在我的UnitTest上工作但不能在Feature文件中工作。请分享您的解决方案。欢迎任何想法和大帮助。 谢谢

0 个答案:

没有答案