2014-11-13 12 views
6

Tôi có một tải trọng của các bài kiểm tra, và một số trong số họ có "(chậm)" trong tên:Với mocha, làm cách nào để chạy tất cả các thử nghiệm * không * có (chậm) trong tên?

enter image description here

Một số trong số đó là chậm hơn so với các bài kiểm tra đánh dấu (chậm), nhưng dựa vào bằng các bài kiểm tra khác và do đó không thể bỏ qua. Tôi chỉ muốn bỏ qua những cái có (chậm) trong tên — là có thể?

Tôi đang sử dụng Mocha.

Trả lời

3

Có vẻ với tôi như bạn đang làm việc đó cho một trang bạn đang tải trong trình duyệt để chạy Mocha. Để làm điều này trong trình duyệt, bạn có thể chuyển các thông số trong URL của trang:

  • grep mà xấp xỉ tương ứng với --grep tùy chọn trên dòng lệnh. Điều này thu hẹp các thử nghiệm chạy đến các thử nghiệm khớp với biểu thức được chuyển đến grep. Tuy nhiên, hiện tại (thậm chí là 2.0.1) không có cách nào để Mocha giải thích tham số này dưới dạng biểu thức chính quy . Nó luôn được hiểu là một chuỗi. Đó là lý do tại sao tôi nói "xấp xỉ tương ứng". --grep trên dòng lệnh là cụm từ thông dụng nhưng thông số grep được truyền trong URL là một chuỗi.

  • invert tương ứng với tùy chọn --invert trên dòng lệnh. Điều này sẽ đảo ngược kết quả được thực hiện bởi grep và do đó chọn các thử nghiệm mà grep không khớp.

Vì vậy, nếu bạn mở bạn trang bằng cách thêm các chuỗi sau ?grep=(slow)&invert=1 nó sẽ chạy các bài kiểm tra mà không có chuỗi "(slow)" trong đó.

+0

Nó hoạt động! Cảm ơn bạn. – callumacrae

+0

Sử dụng cụm từ thông dụng là có thể từ mã javascript. Ví dụ: 'mocha.setup ({ui: 'bdd', grep: new RegExp (". * ")}); Mocha.run();' –

4

Bạn có thể thực hiện việc này bằng cách kết hợp hai công tắc dòng lệnh. Dưới đây là phần có liên quan của tài liệu:

-g, --grep <pattern> only run tests matching <pattern> -i, --invert inverts --grep matches

1

Grep chấp nhận một mô hình regex, bạn có thể làm điều đó như thế này:

mocha --grep '^(?!.*\\b\(slow\)\\b)' 
Các vấn đề liên quan