我使用基于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断言失败时才会发生这种情况。
答案 0 :(得分:0)
使用after
或afterEach
挂钩始终在测试结束时关闭浏览器,无论结果如何。见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);