Javascript 无法将参数从命令传递到grunt文件
我将下面的代码用于量角器配置文件中使用的参数Javascript 无法将参数从命令传递到grunt文件,javascript,gruntjs,jasmine,protractor,Javascript,Gruntjs,Jasmine,Protractor,我将下面的代码用于量角器配置文件中使用的参数 protractor: { options: { keepAlive: true, configFile: "test/config.js", args:{ params:{ user:"user1", password:"password1" } }
protractor: {
options: {
keepAlive: true,
configFile: "test/config.js",
args:{
params:{
user:"user1",
password:"password1"
}
}
},
并在量角器配置文件中检索为browser.params.user、browser.params.password
这些是工作文件。
我想从命令更改用户和密码值。
如何更改值?这是一个简单的解决方法: 将参数传递给grunt任务时:
grunt e2e --user=alex --password=password
它可以作为
grunt.option('user')
然后,您可以使用以下命令编辑配置中的值:
var protConfig = grunt.config.get('protractor');
protConfig.options['someKey']=newValue;
grunt.config('protractor', protConfig);
grunt.task.run('protractor');
我不确定这是最好的方法,但对我来说效果很好。
还请注意,我们正在包装量角器任务,而不是立即调用它如何获取量角器规范中的--user参数?在下面的代码中,我注册了一个任务“MyGragrator”,任务后面的任何参数都将作为参数进入匿名函数: grunt量角器:dev:pwd
module.exports = function(grunt) {
grunt.registerTask('myprotractor', function(user, pwd) {
console.log(user + pwd);
grunt.config('protractor', {
options: {
keepAlive: true,
configFile: "test/config.js",
args: {
params: {
user: user,
password: pwd
}
}
}
});
//here I am running the task
grunt.task.run([
'protractor'
]);
});
};
如果需要,您可以为量角器配置2个目标,具有一些公共配置,并根据您希望从cmd还是从config设置args
grunt量角器:cmd:dev:pwd
module.exports = function(grunt) {
grunt.registerTask('myprotractor', function(target, user, pwd) {
console.log(user + pwd);
grunt.config('protractor', {
options: {
keepAlive: true,
configFile: "test/config.js"
},
cmd: {
options: {
args: {
params: {
user: user,
password: pwd
}
}
}
},
config: {}
});
//here I am running the task with a target
grunt.task.run([
'protractor:' + target
]);
});
};