我有多个夜班测试,每个测试都有设置和拆卸。我试图在before-after中将其统一为globalModule.js(在nightwatch.json中的globals_path中设置的路径)
//globalModule.js
before:function(test, callback){
// do something with test object
}
//sampletest.js
before: function(test){
..
},
'testing':function(test){
....
}
我的问题是测试上下文在globalsModule.js中不可用。我如何获得它?有人能告诉我吗?
测试上下文现在不可用。正如beatfactor所说,它很快就会上市。虽然它不可用,尝试在第一个文件之前使用本地,但它破解了。此外,你可以将所有文件导出到一个对象中,并将其导出到nightwatch中,但之后你可以及时使用本地文件。例如:
var tests = {};
var befores = [];
var fs =require('fs');
var requireDir = require('require-dir');
var dirs = fs.readdirSync('build');
//if you have dirs that should exclude
var usefull = dirs.filter(function(item){
return !(item=='data')
});
usefull.forEach(function(item){
var dirObj = requireDir('../build/' + item);
for(key in dirObj){
if(dirObj.hasOwnProperty(key))
for(testMethod in dirObj[key])
if(dirObj[key].hasOwnProperty(testMethod))
if(testMethod == 'before')
befores.push(dirObj[key][testMethod]);
else
tests[testMethod] = dirObj[key][testMethod];
}
});
tests.before = function(browser){
//some global before actions here
//...
befores.forEach(function(item){
item.call(tests,browser);
});
};
module.exports = tests;
有关详细信息https://github.com/beatfactor/nightwatch/issues/388