โดยค่าเริ่มต้น Mocha จะอ่านไฟล์ชื่อtest/mocha.opts
ที่สามารถมีอาร์กิวเมนต์บรรทัดคำสั่ง ดังนั้นคุณสามารถสร้างไฟล์ดังกล่าวที่มี:
--timeout 5000
เมื่อใดก็ตามที่คุณเรียกใช้ Mocha ที่บรรทัดคำสั่งมันจะอ่านไฟล์นี้และตั้งค่าการหมดเวลา 5 วินาทีโดยค่าเริ่มต้น
อีกวิธีหนึ่งที่อาจดีกว่าขึ้นอยู่กับสถานการณ์ของคุณคือตั้งค่าแบบนี้ในการdescribe
เรียกระดับสูงสุดในไฟล์ทดสอบของคุณ:
describe("something", function () {
this.timeout(5000);
// tests...
});
สิ่งนี้จะช่วยให้คุณสามารถตั้งค่าการหมดเวลาได้เฉพาะบนพื้นฐานต่อไฟล์
คุณสามารถใช้ทั้งสองวิธีหากคุณต้องการค่าเริ่มต้นทั่วโลกที่ 5,000 แต่ตั้งค่าบางอย่างที่แตกต่างกันสำหรับบางไฟล์
โปรดทราบว่าโดยทั่วไปคุณไม่สามารถใช้ฟังก์ชั่นลูกศรหากคุณต้องการโทรthis.timeout
(หรือเข้าถึงสมาชิกคนอื่น ๆ ของthis
มอคค่าที่คุณตั้งไว้) เช่นนี้มักจะไม่ทำงาน :
describe("something", () => {
this.timeout(5000); //will not work
// tests...
});
นี่เป็นเพราะฟังก์ชั่นลูกศรใช้this
จากขอบเขตที่ฟังก์ชั่นปรากฏขึ้น Mocha จะเรียกใช้ฟังก์ชันด้วยค่าที่ดีthis
แต่ไม่ได้ส่งผ่านค่าภายในฟังก์ชันลูกศร เอกสารสำหรับ Mocha พูดในหัวข้อนี้ :
ผ่านฟังก์ชั่นลูกศร (“ lambdas”) ไปยัง Mocha เนื่องจากการเชื่อมโยงศัพท์ของฟังก์ชันนี้จึงไม่สามารถเข้าถึงบริบท Mocha