我正在尝试使用NPM软件包“ yargs ”来获取命令行参数值,而不是从config.ts文件中获取值。
示例: 我的config.ts文件看起来像
export const config: Config = {
username: process.argv[3],
password: process.argv[4]
}
在我的package.json文件中,我已经为“ 测试”定义了脚本:“ ./ node_modules / .bin / protractor typeScript / config / config.js”,
在我的测试用例中,我正在检索“ config.username”和“ config.password”的值
因此,当我执行npm test --username1 --password1时,正在执行的测试用例是从config.ts文件中选取值,而不是从命令行中通过“ username1”和“ password1”的值。 有人可以帮助我从命令行而不是从config.ts文件中选择值。
预先感谢.. !!!
答案 0 :(得分:0)
对于量角器,请查看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);
});
});
但是!这些变量在您的配置中不可用,仅在规格中可用。
如果您需要在配置(条件套件等)中重用变量,请按照以下方式操作
假设您有命令开始测试
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);
请注意,此方法甚至不需要其他软件包