如何使用node.js在量角器中将命令行参数值传递给配置文件

时间:2019-11-21 12:21:34

标签: node.js protractor

我正在尝试使用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文件中选择值。

预先感谢.. !!!

1 个答案:

答案 0 :(得分:0)

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);

请注意,此方法甚至不需要其他软件包