suites: {
dev: ['./test/show-file.spec.js'],
smoke: [
// './test/template.spec.js',
'./test/form-validation.spec.js',
'./test/upload.spec.js',
'./test/empty-folder.spec.js',
'./test/versions.spec.js',
'./test/search.spec.js',
'./test/archive.spec.js',
'./test/move.spec.js',
'./test/copy.spec.js',
'./test/tags.spec.js',
'./test/share.spec.js',
// './test/signup.spec.js',
// './test/show-file.spec.js',
],
recovery: [
'./test/show-file.spec.js',
'./test/show-file.spec.js',
'./test/show-file.spec.js',
'./test/show-file.spec.js',
'./test/show-file.spec.js',
'./test/show-file.spec.js',
]
},
以上是我的配置文件,Id喜欢运行恢复套件以确保系统恢复。所以基本相同的测试X次。 对于我不知道的原因它只运行一次。 是否有任何设置可以避免它并让它多次运行
test.conf.js --suite=recovery
找到了解决方法
for (var i = 0; i < 10; ++i){
describe('Suite: show', function () {
it('may be fine', function () {
expect(Math.random() < 0.5).toBeTruthy();
});
});
}
答案 0 :(得分:1)
量角器将对suite
执行重复性检查以删除相同的文件模式/文件名,但不要在specs
上执行此操作。
简单解决方案是使用specs
而不是suite
。不需要额外的脚本。
compalicate 解决方案需要额外的脚本帮助。
//量角器conf.js
var params = {};
process.argv.slice(3).forEach(function(arg, index) {
var flag = arg.split('=')[0];
var value = arg.split('=')[1];
var name = flag.replace('--', '');
params[name] = value;
});
console.dir(params);
var config = {
capabilities: {
browserName: 'chrome'
},
suites: {
dev: ['./test/show-file.spec.js'],
smoke: [
'./test/template.spec.js',
// ...
],
recovery: [
'./test/show-file.spec.js'
]
},
onPrepare: function() {},
// ...
};
if (params['repeat.suites'] && config.suites &&
Object.keys(config.suites).length > 0) {
var repeat = (params['repeat.times'] || 1) * 1;
var specs = [];
params['repeat.suites'].split(',').forEach(function(suiteName) {
suiteName = suiteName.trim();
if (config.suites[suiteName]) {
specs = specs.concat(config.suites[suiteName]);
}
});
var allSpecs = [];
while (repeat > 0) {
allSpecs = allSpecs.concat(specs);
repeat--;
}
config.specs = allSpecs;
}
console.dir(config);
exports.config = config;
//量角器cmd线:
protractor conf.js --repeat.suites="smoke,recovery" --repeat.times=2
注意您可以继续使用其他支持量角器的cli选项。只有当您想重复执行某个套件时,才应使用--suite
,而是使用--repeat.suite
。