如何在 Angularjs Protractor 中使用系统环境变量?
Posted
技术标签:
【中文标题】如何在 Angularjs Protractor 中使用系统环境变量?【英文标题】:How can I use System Environment Variables in Angularjs Protractor? 【发布时间】:2014-06-07 03:21:51 【问题描述】:我的计划是将用户名和密码存储为系统环境变量,并在 Angularjs Protractor 配置文件中引用它们。我在/etc/environment
中定义了变量。这是我迄今为止尝试过的:
params:
login:
user: $E2E_USER,
pass: $E2E_PASS
我也试过这个:
params:
login:
user: process.env.E2E_USER,
pass: process.env.E2E_PASS
任何帮助将不胜感激!
【问题讨论】:
我模拟了您的第二种方法(也用于github.com/angular/protractor/blob/master/spec/ciConf.js)并且效果很好——您在使用process.env.E2E_USER
等时遇到了哪个错误?
你也可以启动node
命令行并检查console.log(process.env)
给你的列表——看看E2E_USER
和E2E_PASS
是否真的存在于你的环境中。
process.env.E2E_USER
是 undefiend
。当我打印process.env
时,我在列表中看不到E2E_USER
。我在/etc/environment
中定义了变量,它应该在其他地方吗?谢谢!
我会选择 export
你找到自己的方式。一切都好:)
【参考方案1】:
你必须在 NodeJS 中使用process.env.YOUR_ENV
,例如在 onPrepare 函数中,而不是直接在 params 中:
exports.config =
onPrepare: function()
//load env variables for testing
if (typeof process.env.URL !== "undefined")
browser.baseUrl = process.env.URL;
console.log('Base URL = ' +process.env.URL);
,
params: ...
【讨论】:
我正在尝试使用 angular2 和量角器来实现相同的目标,但没有运气。当我控制台日志process.env
时,我看不到任何环境变量。我该如何解决我的问题??【参考方案2】:
我使用了export E2E_USER=username
,并且成功了。
【讨论】:
我可以澄清一下:process.env.E2E_USER
有效。此答案中的 export
命令仅设置环境变量 E2E_USER。我想当 OP 提出问题时,变量没有设置。以上是关于如何在 Angularjs Protractor 中使用系统环境变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio Code 中使用 Typescript 和 Jasmine 框架编写 Protractor 测试脚本?
更新到 Angular 2 后,无法在 Firefox 上通过 Protractor 运行 Selenium