Theo mặc định, Mocha sẽ đọc một tệp có tên test/mocha.opts
có thể chứa các đối số dòng lệnh. Vì vậy, bạn có thể tạo một tệp như vậy có chứa:
--timeout 5000
Bất cứ khi nào bạn chạy Mocha tại dòng lệnh, nó sẽ đọc tệp này và đặt thời gian chờ là 5 giây theo mặc định.
Một cách khác có thể tốt hơn tùy thuộc vào tình huống của bạn là đặt nó như thế này trong một describe
cuộc gọi cấp cao nhất trong tệp thử nghiệm của bạn:
describe("something", function () {
this.timeout(5000);
// tests...
});
Điều này sẽ cho phép bạn chỉ đặt thời gian chờ trên cơ sở mỗi tệp.
Bạn có thể sử dụng cả hai phương pháp nếu bạn muốn mặc định toàn cầu là 5000 nhưng đặt một cái gì đó khác nhau cho một số tệp.
Lưu ý rằng bạn thường không thể sử dụng chức năng mũi tên nếu bạn định gọi this.timeout
(hoặc truy cập bất kỳ thành viên nào khác trong this
bộ Mocha đó cho bạn). Ví dụ, điều này thường sẽ không hoạt động :
describe("something", () => {
this.timeout(5000); //will not work
// tests...
});
Điều này là do hàm mũi tên lấy this
từ phạm vi mà hàm xuất hiện. Mocha sẽ gọi hàm có giá trị tốt this
nhưng giá trị đó không được truyền vào bên trong hàm mũi tên. Tài liệu cho Mocha nói về chủ đề này :
Việc truyền các chức năng mũi tên (cừu lambdas) cho Mocha không được khuyến khích. Do ràng buộc từ vựng của điều này, các chức năng như vậy không thể truy cập vào bối cảnh Mocha.