nightwatch.js: 全局前后挂钩
nightwatch.js: global before and after hooks
下面是我的 globals.js
它位于 root/lib
目录中。
module.exports = {
beforeEach: function (browser) {
browser.init();
browser.login('admin');
},
afterEach: function (browser) {
browser.logout();
browser.end();
},
}
下面是我的测试文件,位于root/test
var util = require('../../lib/globals.js');
module.exports = {
'user login': function (browser)
{
// verify login, then logout
headerPage.verifyAuthentication();
browser.logout();
browser.end();
}
};
但根本不测试运行宁beforeEach
和afterEach
。我想要这两个 运行 每次测试前后,没有将这些函数放在每个测试文件中,因为会有超过 100 个测试文件。
根据客户的指示,我现在无法使用 mocha
或 grunt
。请让我知道我在这里缺少什么?
尝试下一个片段:
globals.js
module.exports = function(options) {
return Object.assign({}, options || {}, {
beforeEach(browser) {
// common
browser.init();
browser.login('admin');
// custom
if (options.beforeEach) {
options.beforeEach.apply(this, arguments);
}
},
afterEach() {
// custom
if (options.afterEach) {
options.afterEach.apply(this, arguments);
}
// common
browser.logout();
browser.end();
}
});
}
测试文件
var module = require('../../lib/globals.js');
module.exports = module({
'user login': function (browser) {
// verify login, then logout
headerPage.verifyAuthentication();
browser.logout();
browser.end();
}
});
我没有 运行 该代码(我们使用修改后的版本),但想法是——从全局模块和具体测试中收集所有 beforeEach
/afterEach
(可能您需要更改 common/custom 个零件的顺序 )
下面是我的 globals.js
它位于 root/lib
目录中。
module.exports = {
beforeEach: function (browser) {
browser.init();
browser.login('admin');
},
afterEach: function (browser) {
browser.logout();
browser.end();
},
}
下面是我的测试文件,位于root/test
var util = require('../../lib/globals.js');
module.exports = {
'user login': function (browser)
{
// verify login, then logout
headerPage.verifyAuthentication();
browser.logout();
browser.end();
}
};
但根本不测试运行宁beforeEach
和afterEach
。我想要这两个 运行 每次测试前后,没有将这些函数放在每个测试文件中,因为会有超过 100 个测试文件。
根据客户的指示,我现在无法使用 mocha
或 grunt
。请让我知道我在这里缺少什么?
尝试下一个片段:
globals.js
module.exports = function(options) {
return Object.assign({}, options || {}, {
beforeEach(browser) {
// common
browser.init();
browser.login('admin');
// custom
if (options.beforeEach) {
options.beforeEach.apply(this, arguments);
}
},
afterEach() {
// custom
if (options.afterEach) {
options.afterEach.apply(this, arguments);
}
// common
browser.logout();
browser.end();
}
});
}
测试文件
var module = require('../../lib/globals.js');
module.exports = module({
'user login': function (browser) {
// verify login, then logout
headerPage.verifyAuthentication();
browser.logout();
browser.end();
}
});
我没有 运行 该代码(我们使用修改后的版本),但想法是——从全局模块和具体测试中收集所有 beforeEach
/afterEach
(可能您需要更改 common/custom 个零件的顺序 )