2014-10-16 20 views
6

Tôi có một số yêu cầu cần thử lại các thử nghiệm lỗi mocha nhiều lần. Có cách nào dễ dàng để giải quyết vấn đề này không?thử lại thử mocha không thành công

tôi đã cố gắng https://github.com/giggio/mocha-retry, nhưng nó dường như không làm việc cho tôi với 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

+1

Điều này có mùi của [vấn đề XY] (http://meta.stackexchange.com/a/66378/241526). Tại sao bạn cần phải thử lại các bài kiểm tra của mình? Ngay cả tài liệu về mocha-retry (có một vài lỗi chính tả bằng cách này, không truyền cảm hứng cho sự tự tin) có một đoạn về cách các bài kiểm tra của bạn hoạt động như thế nào? nhất quán. – Louis

+1

Vâng, các nhóm muốn tập trung vào những thất bại nhất quán trước tiên, bằng cách giảm tiếng ồn của những thất bại liên tục vì không ổn định nhưng không kiểm soát được môi trường chúng ta đang đối mặt. – ccy

Trả lời

0

try{}catch và đệ quy

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 sẽ giúp ngăn ngừa bubbling lên các lỗi cho đến khi bạn muốn nó và do đó cho phép bạn đệ quy tiếp tục cố gắng.

4
it (2, 'sample test', function(done) { 
     this.retries(2); pass the maximum no of retries 
     expect(1).to.equal(2); 
     done(); 
    }); 

// this.retries (Không có lần thử lại);

Nếu trường hợp thử nghiệm của bạn không thành công, nó sẽ thực hiện lại cùng một trường hợp kiểm tra một lần nữa cho đến khi không đạt được số lần thử lại tối đa hoặc trường hợp kiểm tra được thông qua. Khi trường hợp kiểm tra của bạn được thông qua, nó sẽ chuyển sang trường hợp kiểm tra tiếp theo.

+0

Lưu ý: thử lại hiện là một phần của lõi mocha: http://mochajs.org/#retry-tests – redgeoff

Các vấn đề liên quan