连续运行相同的grunt任务的规范方法是什么,多次直到它失败?
我想将问题保持通用,但这是一个特定的用例:
我们在Protractor中编写了大量的端到端测试,我们在grunt-protractor-runner
和grunt-contrib-connect
的帮助下通过<div *ngFor="let item of items; let i = index; let last = last">
<div *ngIF="last">
`
</div>`
`
</div>`
运行。我们要做的是保持grunt
任务运行(从connect
目录服务的Web服务器),同时循环dist
直到它失败(或/和向上)至protractor
次)。任务:
N
在此,我们要多次执行connect: {
test: {
options: {
base: 'dist',
port: 9001
}
},
},
protractor: {
options: {
keepAlive: true,
noColor: false
},
local: {
options: {
configFile: "test/e2e/config/local.conf.js"
}
}
},
grunt.registerTask('e2e:local', [
'connect:test',
'protractor:local'
]);
次和connect:test
次。
答案 0 :(得分:1)
结果就像将相同的任务添加到任务数组N次一样简单(仍然不确定我们是否能以某种方式避免指定N
并无限期地运行任务直到它失败)并且,因为,默认情况下grunt
在“故障快速”模式下工作,整个任务在第一次失败时失败。在我们的案例中:
grunt.registerTask('e2e:local', function () {
var tasks = ['connect:test'];
var N = 100;
for (var i = 0; i < N; i++) {
tasks.push('protractor:local')
}
grunt.task.run(tasks);
});
N
这里的任务是硬编码的,但可以作为grunt option“从外部”传递。