用守夜人断言失败后关闭浏览器会话

时间:2017-06-19 20:09:13

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

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

这是我的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断言失败时才会发生这种情况。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

using Newtonsoft.Json;

var gpsJson = JsonConvert.SerializeObject(gps);