首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置环境变量咕噜或咕噜-exec

设置环境变量咕噜或咕噜-exec
EN

Stack Overflow用户
提问于 2016-10-10 17:35:30
回答 2查看 791关注 0票数 1

我正在尝试使用grunt-exec来运行一个javascript测试运行程序,其中包含一个已部署的链接变量。

我试图通过使用grunt.option('link')设置环境变量exec:setLink来做到这一点。在我的test_runner.js中,我使用process.env.TEST_LINK获取变量。不幸的是,grunt-exec似乎不会运行bash命令,比如export(?)

真的,我不在乎变量是如何到达我的test_runner.js的,所以其他任何想法都是受欢迎的。

代码语言:javascript
复制
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";
    }
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-10 23:29:47

使用grunt-exec,子进程的环境变量可以在 option中指定。

代码语言:javascript
复制
exec: {
  selenium: {
    cmd: function () {
      return "node test/runner/jasmine_runner.js";
    },
    options: {
      env: {
        'TEST_LINK': grunt.option('link')
      }
    }
  }
}

要记住的一件事是,如果在TEST_LINK选项中只指定了env,那么这将是子进程的唯一环境变量。如果您也希望传递当前进程的环境变量,您可以这样做:

代码语言:javascript
复制
exec: {
  selenium: {
    cmd: function () {
      return "node test/runner/jasmine_runner.js";
    },
    options: {
      env: Object.assign({}, process.env, { 'TEST_LINK': grunt.option('link') })
    }
  }
}
票数 2
EN

Stack Overflow用户

发布于 2016-10-11 00:04:07

最后,我只使用节点process.env['TEST_LINK'] = grunt.option('link');,然后在process.env['TEST_LINK'];的javascript中检索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39963764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档