我需要在运行时修改Protractor配置的几个元素,最重要的是multiCapabilities对象的一些值:
...
multiCapabilities: [
{
'build': buildNumber,
'app': 'app' + buildNumber + '.apk',
'browserName': '',
'appiumVersion': '1.4.16',
'deviceName': 'Android Emulator',
'deviceOrientation': 'portrait',
'platformVersion': '5.1',
'platformName': 'Android',
'autoWebview': true
},
{
...
}
],
...
具体来说,我正在针对已上传到SauceLabs的应用程序的特定版本运行这些测试。我希望能够以某种方式动态设置'build'和'app'值。
不幸的是,Grunt Protractor Runner不支持multiCapabilities功能,否则可以使用该包装器进行处理。
答案 0 :(得分:1)
一种选择是使用browser.params
并从命令行参数中参数化您的测试。在这种情况下,请使用getMultiCapabilities()
方法:
getMultiCapabilities: function () {
var buildNumber = browser.params.build,
app = browser.params.app;
return [
{
'build': buildNumber,
'app': app,
'browserName': '',
'appiumVersion': '1.4.16',
'deviceName': 'Android Emulator',
'deviceOrientation': 'portrait',
'platformVersion': '5.1',
'platformName': 'Android',
'autoWebview': true
},
{
...
}
],
},
用法:
protractor protractor.conf.js --params.build="build" --params.app="app"