连续多次运行相同的 grunt 任务直到失败的规范方法是什么?
<小时/>我想保持问题的通用性,但这里有一个具体的用例:
我们有大量用 Protractor 编写的端到端测试,我们在 grunt-protractor-runner
的帮助下通过 grunt
运行这些测试。和 grunt-contrib-connect
。我们想要做的是保持 connect
任务运行(从 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
并执行多次 protractor:local
。
最佳答案
结果就像将相同的任务添加到任务数组中 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 传递。 .
关于javascript - 多次运行 grunt 任务直到失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960934/