我有一些要求需要多次重试mocha失败测试。有没有简单的方法/解决方法来做到这一点?
我尝试了https://github.com/giggio/mocha-retry,但似乎对Mocha 1.21.3起作用并不适合我:
it (2, 'sample test', function(done) {
expect(1).to.equal(2);
done();
});
mocha test/retry.js -g 'sample test' --ui mocha-retry
答案 0 :(得分:8)
it (2, 'sample test', function(done) {
this.retries(2); pass the maximum no of retries
expect(1).to.equal(2);
done();
});
// this.retries(最多没有重试次数);
如果您的测试用例失败,则会再次重新执行相同的测试用例,直到达到最大重试次数或测试用例通过为止。 一旦你的测试用例通过,它将跳转到下一个测试用例。
答案 1 :(得分:1)
可以要求Mocha在控制台中重试失败的测试:
mocha test/retry.js -g 'sample test' --retries 2
答案 2 :(得分:0)
try{}catch
和递归
var tries_threshold = 5;
it(2, 'sample test', function(done) {
var tries = 0;
function actual_test() {
expect(1).to.equal(2);
}
function test() {
try {
actual_test();
} catch (err) {
if (err && tries++ < tries_threshold)
test();
else done(err);
}
}
test();
});
try{}catch
将有助于防止错误冒出,直到您需要它为止,因此允许您递归继续尝试。