【发布时间】:2016-05-11 21:03:40
【问题描述】:
我正在通过命令 npm run e2e 运行我的量角器测试
我想要一种方法,如果我通过npm run e2e firefox,那么我的测试将在 Firefox 浏览器上执行。
或者如果我运行 npm run e2e chrome 那么它应该在 chrome 上运行
如果我同时通过npm run e2e firefox chrome,那么我的测试应该在两个浏览器上并行运行。
是否可以参数化量角器配置文件?
同样,如果我可以通过命令传递测试套件名称,它应该只执行该特定测试套件下的测试。
这是我的配置文件,这是我想要实现的:
`//var HtmlReporter = require('protractor-html-screenshot-reporter');
exports.config = {
allScriptsTimeout: 30000,
//Add parameters for browser names
params:{
pass: {
browserName : 'chrome',
testSuitName : 'e2e/TestSuites/_BVT/*.js',
}
},
suites: {
//Define here List of Sanity Test Scenarios:
BVT : testSuitName,
},
// configure multiple browsers to run tests
multiCapabilities: [
shardTestFiles: true,
maxInstances: 2
{'browserName': browserName}
],
baseUrl: 'http://mytestUrl/',
framework: 'jasmine2',
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
},
onPrepare: function() {
var jasmineReporters = require('jasmine-reporters');
browser.driver.manage().window().maximize();
return browser.getProcessedConfig().then(function(config) {
var browserName = config.capabilities.browserName;
var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: 'tests/test-results',
filePrefix: browserName + '-xmloutput',
modifySuiteName: function(generatedSuiteName, suite) {
return browserName + '.' + generatedSuiteName;
}
});
jasmine.getEnv().addReporter(junitReporter);
});
},
resultJsonOutputFile: 'tests/test-results/output.json'
};`
不胜感激。
提前致谢。
【问题讨论】:
-
您是否在您的规范文件中尝试过
capabilities: { 'browserName': 'chrome' },?这将允许您选择您的浏览器。 -
是的,我确实尝试过,但我想参数化 browserName : $param 值,以便我可以从命令行传递这个值,并且配置文件将采用 chrome、firefox 或 IE 的这个值..跨度>
-
你能看看这个链接stackoverflow.com/questions/23135649/…和referenceConf.js链接github.com/angular/protractor/blob/master/docs/referenceConf.js你可以使用参数来做到这一点
-
@MohamedNAOUALI 这显示了如何将用户名、密码等参数传递给配置并在我的测试中使用它。但我希望我的浏览器值和测试套件值被参数化。我希望我的配置文件看起来像:功能:{'browserName':param1},和套件:{Test1:param2},当我执行
npm run e2e 'chrome' 'logintest.js'命令时,我的logintest.js 应该在chrome 浏览器上执行。有没有可能做到这一点? -
对此有什么想法吗?
标签: protractor