我想获得--suite
参数。 E.g:
protractor conf.js --suite=foo
我想在我的测试用例中获得'foo'
。 E.g:
it ('Sent parameter', function() {
consol.log('Suite is:' + ...);
}
答案 0 :(得分:1)
您可以使用
browser.getProcessedConfig().then(function(config){
console.log(config.suite)
});
请参阅http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.getProcessedConfig了解更多信息。
答案 1 :(得分:0)
您可以使用Nodejs'process
模块通过process.argv
获取所有命令参数。
我有一个cli.params.js
来处理命令参数并返回一个对象。
// cli.params.js
/**
* get parameters value from command line,
*/
var default_processor = function(value) {
return value ? value.trim() : value;
};
exports.process = function(options) {
var params = options && options.default || {};
var processor = options && options.processor || {};
process.argv.slice(3).forEach(function(arg) {
var flag = arg.split('=')[0];
var value = arg.split('=')[1];
var name = flag.replace('--', '');
if (processor[name]) {
processor[name](value, params);
} else {
params[name] = default_processor(value);
}
});
return params;
};
如何使用cli.params.js
// protractor conf.js
var params = require('./cli.params.js').process();
console.log('suite: '+ params.suite) // smoke
console.log('env: '+ params.env) // dev
console.log('abc: '+ params.abc) // 123
// if you want to access params across scripts, you can make it as global
global.params = params
exports.config = {
capabilities: {},
seleniumAddress: '',
framework: 'custom',
...
};
// spec.js
it ('Sent parameter', function() {
console.log('Suite is:' + global.params.suite);
});
cmd行中的传入参数:
protractor conf.js --suite=smoke --env=dev --abc=123
将选项传递到cli.params.js
process()的示例:
var options= {
// set default/omit value
default: {
device: 'desktop',
browser: 'chrome'
},
// set customize processor for certain argument, rather than the default processor
// defined in cli.params.js
processor: {
'cucumberOpts.tags': function(value, params) {
params.tags = value;
}
}
};
// cmd line
protractor conf.js --suite=smoke --cucumberOpts.tags=@smoke
var params = require('./cli.params.js').process(options);
console.log('suite: '+ params.suite) // smoke
console.log('device: '+ params.device) // desktop, even not specify in cmd line
console.log('browser: '+ params.browser) // chrome, even not specify in cmd line
console.log('tags : '+ params.tags ) // @smoke,
// with the customize processor in options,
// we can use params.tags, rather than use params['cucumberOpts.tags'] to get tags values