设置环境variablesgrunt或grunt-exec
我正在尝试使用grunt-exec运行一个带有部署链接variables的javascripttesting运行器。
我试图通过使用exec:setLink
设置一个环境variablesgrunt.option('link')
来exec:setLink
。 在我的test_runner.js
我使用process.env.TEST_LINK
获取variables。 不幸的是,似乎grunt-exec不会运行诸如export(?)之类的bash命令
真的,我不在乎variables如何到达我的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"; } }
使用grunt-exec
,可以在env
选项中指定subprocess的环境variables:
exec: { selenium: { cmd: function () { return "node test/runner/jasmine_runner.js"; }, options: { env: { 'TEST_LINK': grunt.option('link') } } } }
有一点需要记住的是,如果在env
选项中只指定了TEST_LINK
,那么这将是subprocess的唯一环境variables。 如果你想让当前进程的环境variables也被传递,你可以这样做:
exec: { selenium: { cmd: function () { return "node test/runner/jasmine_runner.js"; }, options: { env: Object.assign({}, process.env, { 'TEST_LINK': grunt.option('link') }) } } }
我结束了刚刚使用节点process.env['TEST_LINK'] = grunt.option('link');
然后用process.env['TEST_LINK'];
在javascript中检索process.env['TEST_LINK'];