【问题标题】:close browser session after failed assertion with nightwatch使用 nightwatch 断言失败后关闭浏览器会话
【发布时间】:2017-11-22 04:08:10
【问题描述】:

我使用基于 Nightwatch.js 的 Nightwatch-Cucumber 在 node.js 中实现了一个新的自动化测试测试框架。所以,有时我使用 node.js 断言来检查一些值。我在我的框架中使用 PageObject 模式。我的问题是断言失败后浏览器会话没有关闭,我不知道为什么,也不知道如何解决问题。

这是我的 StepDefinition:

const {
  client
} = require('nightwatch-cucumber');
const {
  defineSupportCode
} = require('cucumber');

const page = client.page.page();

defineSupportCode(({Given, When, Then}) => {
  When(/^test$/, () => {
    return page.test();
  });
});

这就是我的 PageObject 函数:

module.exports = {
  elements: {},
  commands: [{
    test() {
      //here the assertion failed and the browser session still exist and doen't close
      this.assert.equal(false, true);

      return this.api;
    }
  }]
};

那么,我该怎么做才能实现关闭浏览器和会话以进行测试?只有在 node.js 断言失败时才会发生这种情况。

【问题讨论】:

    标签: javascript node.js assert nightwatch.js assertions


    【解决方案1】:

    要在每次测试后关闭会话,您必须将 afterEach 挂钩添加到您的测试文件并像这样使用它:

    afterEach : function(browser, done) {
      browser.end(function(){
        done();
      });
    }
    

    【讨论】:

      【解决方案2】:

      使用afterafterEach 挂钩始终在测试结束时关闭浏览器,无论结果如何。见http://nightwatchjs.org/guide#using-before-each-and-after-each-hooks

      after : function(browser) {
        console.log('Closing down...');
        browser.end();
      },

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2012-12-28
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多