我正在尝试使用grunt-exec来运行传入已部署链接变量的javascript测试运行器。
我尝试使用grunt.option('link')
设置环境变量exec:setLink
。在我的test_runner.js
中,我使用process.env.TEST_LINK
获取变量。不幸的是,似乎grunt-exec不会运行bash命令,例如export(?)
真的,我不关心变量如何到达test_runner.js
,所以欢迎任何其他想法。
exec: {
// DOESN'T WORK: Sets env variable with link for selenium tests
setLink: {
cmd: function () {
return "export TEST_LINK=" + "'" + grunt.option('link') + "'";
}
},
// Integration tests, needs TEST_LINK
selenium: {
cmd: function () {
return "node test/runner/jasmine_runner.js";
}
}
答案 0 :(得分:2)
使用grunt-exec
,可以在env
option中指定子进程的环境变量:
exec: {
selenium: {
cmd: function () {
return "node test/runner/jasmine_runner.js";
},
options: {
env: {
'TEST_LINK': grunt.option('link')
}
}
}
}
要记住的一件事是,如果TEST_LINK
选项中只指定env
,那么这将是子进程的唯一环境变量。如果您希望传递当前进程的环境变量,也可以执行以下操作:
exec: {
selenium: {
cmd: function () {
return "node test/runner/jasmine_runner.js";
},
options: {
env: Object.assign({}, process.env, { 'TEST_LINK': grunt.option('link') })
}
}
}
答案 1 :(得分:1)
我最后只使用节点process.env['TEST_LINK'] = grunt.option('link');
然后在我的javascript中使用process.env['TEST_LINK'];