我有一个Windows框和一个Ubuntu框,我在其上运行自动化测试。目前,在我的protractor.config.js
文件中,我的seleniumAddress
部分下有两个multiCapabilities: [{}]
字段,只是根据我想要投放的环境注释掉其中一个。
有没有办法参数化seleniumAddress:
所以我可以从我的命令行告诉运行哪个环境?
这样的事情:gulp e2e --suite <suiteName> --baseUrl <URL>
--environment Windows
以下是我的量角器配置文件中的当前multiCapabilities
部分:
multiCapabilities: [{
browserName: 'chrome',
// seleniumAddress: "URL to webdriver-manager Windows Box",
seleniumAddress: "URL to webdriver-manager Ubuntu Box",
platform: 'ANY',
version: 'ANY',
chromeOptions: {
args: ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'],
prefs: {
'credentials_enable_service': false,
'profile': {
'password_manager_enabled': false
},
download: {
prompt_for_download: false,
directory_upgrade: true,
default_directory: 'C:\\downloads\\'
},
},
}
// shardTestFiles: true,
// maxInstances: 2
}],
&#13;
答案 0 :(得分:1)
Protractor在Node.js上运行,所以你应该能够传递一个参数(稍微复杂一点),或者更容易设置一个环境变量:
添加了环境变量逻辑Protractor website的量角器conf片段:
// Use the Windows selenium if the environmental variable IS_WINDOWS is set.
const seleniumServer = process.env.IS_WINDOWS ?
'https://path/to/windows-silenium' : 'https://path-to-default-selenium';
exports.config = {
// The address of a running selenium server.
seleniumAddress: seleniumServer,
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
// Spec patterns are relative to the configuration file location passed
// to protractor (in this example conf.js).
// They may include glob patterns.
specs: ['example-spec.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true, // Use colors in the command line report.
}
};
我不太确定您想要选择什么(我不会使用gulp),但对于上面的代码段,您可能会使用:
IS_WINDOWS=true gulp e2e --suite <suiteName> --baseUrl <URL>