有没有办法通过量角器cli传递多个浏览器

时间:2015-01-30 15:37:22

标签: protractor

只是想知道是否可以指定cli args到量角器,如

- multiCapabilities.0.browserName chrome --multiCapabilities.1.browserName firefox

这样它就会覆盖量角器conf文件中定义的multiCapabilities。

3 个答案:

答案 0 :(得分:22)

Isaac Lyman的第一个建议的具体例子:

CLI:

protractor ... --params.browsers="chrome,firefox"

conf.js:

var capabilities = {
  chrome: {
    browserName: 'chrome'
  },

  firefox: {
    browserName: 'firefox'
  }
};

...

getMultiCapabilities: function() {
  var browsers = this.params.browsers.split(',');

  // Using lodash to select the keys in `capabilities` corresponding 
  // to the browsers param.
  return _( capabilities )
    .pick(browsers)
    .values()
    .value();
},

答案 1 :(得分:4)

你可以尝试一些事情。

How can I use command line arguments in Angularjs Protractor?解释了如何传入一个“params”变量,如果你是完全专业的,你可以在配置文件中稍后用multiCapabilities部分引用(可能使用辅助函数或if语句,所以你不必从命令行传入复杂的对象)。不容易做到,但可能。

https://sourcegraph.com/github.com/teerapap/grunt-protractor-runner(参见“选项”部分)是一个实用程序,可以让您从命令行传递这些内容而不会有任何问题。它是开源的,如果它不能完全满足你的需求,它似乎很容易修改。

最简单的选择,假设您只需要几个不同的选项,只需使用两个不同的配置文件,“protractor.chrome.conf.js”和“protractor.firefox.conf.js”并运行任何一个你现在需要。

答案 2 :(得分:1)

这是一个合理的要求。我在这里为此创建了一个PR:https://github.com/angular/protractor/pull/1770。目前,您可以将此PR修补到本地量角器以使用此功能。