如何使用 node.js 将命令行参数值传递给量角器中的配置文件
How to pass command line arguments values to config file in protractor using node.js
我正在尝试使用 NPM 包“yargs”获取命令行参数值,而不是从 config.ts 文件中检索值。
示例:
我的 config.ts 文件看起来像
export const config: Config = {
username: process.argv[3],
password: process.argv[4]
}
并且在我的 package.json 文件中,我已经为“test”定义了我的脚本:“./node_modules/.bin/protractor typeScript/config/config.js",
在我的测试用例中,我正在检索值 "config.username" & "config.password"
所以当我执行 npm test --username1 --password1 时,我正在执行的测试用例是从 config.ts 文件中选取值,而不是我传递的值 "username1" 和 "password1" 从命令行。
有人可以帮我从命令行而不是 config.ts 文件中选择值吗?
提前致谢..!!!
1.
对于量角器端,请查看 this page
根据其内容,将其放入您的 conf.js
:
module.exports = {
params: {
login: {
email: 'default',
password: 'default'
}
},
// * other config options *
}
你可以在CMD中给它传递任意参数,如下:
protractor --baseUrl='http://some.server.com' conf.js --parameters.login.email=example@gmail.com
--parameters.login.password=foobar
所以你最终在你的规格中有这个:
describe('describe some test', function() {
it('describe some step', function() {
browser.get(browser.baseUrl);
$('.email').sendKeys(browser.params.login.email);
$('.password').sendKeys(browser.params.login.password);
});
});
但是!这些变量在您的配置中不可用,仅在规范中可用。
2.
如果您需要在配置中重用变量(条件套件等)我这样做的方式如下
假设您有一个开始测试的命令
protractor config.js --baseUrl="www.example.com"
你可以像这样在命令之前声明环境变量
INFO=something PARAM=parameter protractor config.js --baseUrl="www.example.com"
然后在您的量角器配置中,您可以通过键入
来引用这些变量
console.log(process.env.INFO);
console.log(process.env.PARAM);
请注意,此方法甚至不需要额外的包
我正在尝试使用 NPM 包“yargs”获取命令行参数值,而不是从 config.ts 文件中检索值。
示例: 我的 config.ts 文件看起来像
export const config: Config = {
username: process.argv[3],
password: process.argv[4]
}
并且在我的 package.json 文件中,我已经为“test”定义了我的脚本:“./node_modules/.bin/protractor typeScript/config/config.js",
在我的测试用例中,我正在检索值 "config.username" & "config.password"
所以当我执行 npm test --username1 --password1 时,我正在执行的测试用例是从 config.ts 文件中选取值,而不是我传递的值 "username1" 和 "password1" 从命令行。 有人可以帮我从命令行而不是 config.ts 文件中选择值吗?
提前致谢..!!!
1.
对于量角器端,请查看 this page
根据其内容,将其放入您的 conf.js
:
module.exports = {
params: {
login: {
email: 'default',
password: 'default'
}
},
// * other config options *
}
你可以在CMD中给它传递任意参数,如下:
protractor --baseUrl='http://some.server.com' conf.js --parameters.login.email=example@gmail.com
--parameters.login.password=foobar
所以你最终在你的规格中有这个:
describe('describe some test', function() {
it('describe some step', function() {
browser.get(browser.baseUrl);
$('.email').sendKeys(browser.params.login.email);
$('.password').sendKeys(browser.params.login.password);
});
});
但是!这些变量在您的配置中不可用,仅在规范中可用。
2.
如果您需要在配置中重用变量(条件套件等)我这样做的方式如下
假设您有一个开始测试的命令
protractor config.js --baseUrl="www.example.com"
你可以像这样在命令之前声明环境变量
INFO=something PARAM=parameter protractor config.js --baseUrl="www.example.com"
然后在您的量角器配置中,您可以通过键入
来引用这些变量console.log(process.env.INFO);
console.log(process.env.PARAM);
请注意,此方法甚至不需要额外的包