执行多个Cucumber测试的模式是什么?

时间:2018-06-14 15:12:48

标签: java unit-testing selenium cucumber selenium-chromedriver

我正在尝试使用Selenium构建一套Cucumber测试。每个测试的第一步都登录到Web应用程序。

我正在使用Selenium ChromeDriver,我可以看到Cucumber正在使用依赖注入来初始化驱动程序。每次测试完成后,我想重新开始使用新的Web浏览器,但Cucumber坚持使用上一次测试中使用的相同驱动程序。我从一个干净的角度尝试了许多事情。我不确定推荐的做法是什么,我认为你必须使用' Hooks' class,因为它包含在每个测试场景之前和之后运行的方法。这就是我目前所拥有的:

public class Hooks {

    private final WebDriver driver;

    @Inject
    public Hooks(final WebDriver driver) {
        this.driver = driver;
    }

    @Before
    public void openWebSite() {
    }

    @After
    public void closeSession() {
        driver.close();
    }
}

正如您所看到的,我在driver.close()方法中添加了@After语句,但我没有看到重新打开或重新创建新会话的方法,而且我还没有。在下一个测试尝试登录时收到以下异常:

Message: org.openqa.selenium.NoSuchSessionException: no such session

大概是因为它不喜欢我刚刚拨打close()的事实。

但实际上,我想告诉Cucumber我想要一个全新的驱动程序用于每个测试场景。

我已经搜索过Cucumber示例,但我发现的所有示例代码都只涉及一次测试。我没有找到任何使用一套测试的东西,目的是做一些类似于我上面描述的事情。

推荐的模式是什么?

0 个答案:

没有答案