2017-01-31 5 views
10

मैं मोचा परीक्षण मामलों में हुक से पहले टाइमआउट मान निर्धारित करना चाहता हूं। मुझे पता है कि मैं मोचा की कमांड लाइन पर -t 10000 जोड़कर ऐसा कर सकता हूं लेकिन यह प्रत्येक टेस्ट केस टाइमआउट मान को बदल देगा।मोचा में हुक से पहले टाइमआउट कैसे सेट करें?

describe('test ',() => { 

    before((done) => { 
     this.timeout(10000); 
     ... 

यह लाइन this.timeout(1000) कि timeout परिभाषित नहीं है के बारे में शिकायत करेंगे: मैं प्रोग्राम के रूप में नीचे समयबाह्य बदलने के लिए एक रास्ता खोजना चाहते हैं मेरे कोड है। हुक से पहले टाइमआउट कैसे सेट करें।

उत्तर

23

यदि आप describe में सभी परीक्षणों को प्रभावित करना चाहते हैं तो आपको हुक के बजाय अपने describe ब्लॉक में एक टाइमआउट सेट करने की आवश्यकता है। सभी स्थानों पर जहां आप एक कॉलबैक आप मोचा के पास आप एक तीर उपयोग नहीं कर सकते में this उपयोग करना चाहते हैं में

describe('test', function() { 
    this.timeout(10000); 

    before(...); 

    it(...); 
}); 

: हालांकि, अगर आप एक "नियमित" समारोह बल्कि एक तीर समारोह से describe को कॉलबैक के रूप में उपयोग करने की आवश्यकता समारोह। आपको एक "नियमित" फ़ंक्शन का उपयोग करना चाहिए जिसका अपना this मान है जिसे मोचा द्वारा सेट किया जा सकता है। यदि आप तीर फ़ंक्शन का उपयोग करते हैं, तो this का मान मोचा नहीं होना चाहिए और आपका कोड विफल हो जाएगा।

आप अपने से पहले हुक के लिए एक अलग समय समाप्ति सेट कर सकते हैं, लेकिन वहाँ दो बातों पर विचार करने के लिए कर रहे हैं:

  1. यहाँ भी आप एक तीर फ़ंक्शन के बजाय एक "नियमित" समारोह का उपयोग करें ताकि आवश्यकता होगी :

    before(function (done) { 
        this.timeout(10000); 
    
  2. यह केवल before हुक के लिए समय समाप्त स्थापित करेगा और अपने परीक्षण को प्रभावित नहीं करेगा।

+0

सही उत्तर :) – greuze

संबंधित मुद्दे