在e2e测试中,在测试开始时将浏览器初始化为基本URL

时间:2015-08-12 07:55:52

标签: e2e-testing nightwatch.js

我在Django有一个项目,有些页面使用React来增强用户体验。我想创建集成测试,以确保这些页面随着时间的推移没有回归。经过一番挣扎,我选择了nightwatch.js

我的网络服务器专门用于在localhost:8500上运行测试,我希望nightwatch.js完成的所有查询都在此服务器上运行。我配置了这样的测试工具:

...
"test_settings" : {
  "default" : {
    "launch_url" : "http://localhost:8500/",
    ...

问题是我不知道如何使用此设置。当我使用init()方法时,看起来测试卡在主页上...例如,使用此测试:

module.exports = {
  'Test account login in /admin': function (browser) {
    browser.init().url('/admin/')
      .waitForElementVisible('body', 1000)
      .setValue('#id_username', 'username')
      ... + click, wait, check results
      .end();
  }
};

...失败了,我可以看到它是因为浏览器仍然在主页上(代码中的某些断言显示了我主页上的元素)。

这里有什么问题?如何使浏览器在特定URL上初始化?

1 个答案:

答案 0 :(得分:4)

看起来.url()方法只接受参数中的绝对URL。您应该通过点击链接或通过该功能提交绝对URL来浏览您的应用程序......

使用browser.launchUrl

可以制作干燥的东西
  browser.url(browser.launchUrl+'admin/')

我打开an issue on the nightwatchjs Github以建议使用相对网址的可能性。