我正在使用 Protractor 执行一些端到端测试,我想通过命令行传递登录凭据,而不是将它们存储在规范文件中。我找到了一篇有人使用过的帖子process.argv.forEach
,但是如何存储这些值并在另一个规范文件中使用它们?我有一个文件login-spec.js
,我想在其中使用命令行参数。
谢谢!
我正在使用 Protractor 执行一些端到端测试,我想通过命令行传递登录凭据,而不是将它们存储在规范文件中。我找到了一篇有人使用过的帖子process.argv.forEach
,但是如何存储这些值并在另一个规范文件中使用它们?我有一个文件login-spec.js
,我想在其中使用命令行参数。
谢谢!
在参考配置中,这部分可能很有趣:
// The params object will be passed directly to the protractor instance,
// and can be accessed from your test. It is an arbitrary object and can
// contain anything you may need in your test.
// This can be changed via the command line as:
// --params.login.user 'Joe'
params: {
login: {
user: 'Jane',
password: '1234'
}
},
您可以在代码中像这样访问 params 对象: browser.params.login.user
所以在你的情况下,如果你像这样调用量角器:
protractor ... --params.login.user=abc --params.login.password=123
您可以像这样在代码中访问这些变量:
browser.params.login.user
和 browser.params.login.password
接受答案的缺点 - 这些变量将在浏览器启动时可用。因此,如果您打算在配置中使用它们(创建 if/else 逻辑),这将不起作用。
量角器是一个节点进程。任何节点进程都可以使用自定义节点变量启动。不确定它是如何在 windows 中完成的(如果你知道如何做,请发表评论)但对于 mac 和任何 linux/unix 操作系统,你可以
用这样的环境变量启动量角器
MY_VAR=Dev protractor tmp/config.js
然后它将在您流程中的任何地方可用
console.log(process.env.MY_VAR)