重试失败的摩卡测试

时间:2014-10-16 21:48:21

标签: javascript node.js testing mocha

我有一些要求需要多次重试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

3 个答案:

答案 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将有助于防止错误冒出,直到您需要它为止,因此允许您递归继续尝试。