2017-06-08 14 views
10

के साथ केवल एक परीक्षण चलाएं बहुत आसान, मैं जेस्ट के साथ केवल एक परीक्षण चलाने के लिए चाहता हूं।जेस्ट

मैंने it.only या describe.only डाल दिया लेकिन यह अभी भी बहुत सारे परीक्षण चलाता है। मुझे लगता है कि यह मेरी आखिरी प्रतिबद्धता के बाद से सभी परीक्षण चलाता है, लेकिन यह only ध्वज स्पष्ट रूप से सेट के साथ यह व्यवहार नहीं होना चाहिए, है ना?

इस व्यवहार और एकल परीक्षण को चलाने का कारण क्या होता है?

उत्तर

11

जेस्ट परीक्षण parallelizes चलाता है और यह अग्रिम पता नहीं है जो परीक्षण यह चलाना चाहिए और जो यह नहीं चलाना चाहिए। इसका मतलब है कि आप "फिट" का उपयोग करते समय का उपयोग करते हैं, यह केवल उस फ़ाइल में एक परीक्षण चलाएगा लेकिन फिर भी आपकी परियोजना में अन्य सभी परीक्षण फ़ाइलों को चलाएं।

fit, fdescribe और it.only, describe.only एक ही उद्देश्य के अन्य thests को छोड़, केवल मुझे चलाने है।

स्रोत: https://github.com/facebook/jest/issues/698#issuecomment-177673281


उपयोग jest छानने तंत्र, जब आप की तरह

jest --config=jest.config.json --watch 

अपने परीक्षण चलाने के तुम एक testname या filename द्वारा परीक्षण फ़िल्टर कर सकते हैं, बस टर्मिनल

में निर्देशों का पालन करें

enter image description here

प्रेस p, तो एक फ़ाइल नाम

enter image description here

टाइप तो फिर तुम describe.only और it.only जो फ़िल्टर किया, जांच की फ़ाइल से अन्य सभी परीक्षणों को छोड़ देगा का उपयोग कर सकते हैं।

+0

मैं इस फ़िल्टर को फ़ाइल द्वारा कर रहा हूं, लेकिन यह अजीब है ... तो '.only' केवल उसी फ़ाइल के परीक्षणों के लिए काम करता है? – jpenna

+0

@jpenna मैंने अपना जवाब अपडेट किया। – hinok

+12

यह हल करने के लिए एक अत्यधिक जटिल तरीका की तरह लगता है ... – wogsland

2

it.only और केवल मॉड्यूल वे में हैं के लिए describe.only काम करते हैं। आप एक से अधिक फ़ाइलों में परीक्षण फिल्टर करने के लिए समस्या हो रही है, तो आप jest -t name-of-spec उपयोग कर सकते हैं, परीक्षण है कि कल्पना के नाम से मेल (में नाम के खिलाफ मैच का वर्णन या परीक्षण) को छानने ।
स्रोत: https://facebook.github.io/jest/docs/en/cli.html

उदाहरण के लिए, मैं परीक्षण है जो मैं वर्तमान में इस तरह (परीक्षण स्क्रिप्ट के साथ package.json में) लिख रहा हूँ ध्यान केंद्रित:
npm test -- -t "test foo"

0
नहीं

यकीन है कि जेस्ट का कौन सा संस्करण इस की शुरुआत की, लेकिन अब आप जेस्ट क्ली के साथ -w संपत्ति का उपयोग कर सकते हैं।

https://facebook.github.io/jest/docs/en/cli.html#maxworkers-num

--maxWorkers = संख्या

उपनाम: डब्ल्यू। अधिकतम संख्या में श्रमिक निर्दिष्ट करता है कि वर्कर-पूल परीक्षण चलाने के लिए तैयार होगा।यह आपकी मशीन पर उपलब्ध कोर की संख्या पर डिफ़ॉल्ट है। यह के लिए उपयोगी हो सकता है, सीआईएस जैसे संसाधन सीमित वातावरण में इसे समायोजित करें लेकिन डिफ़ॉल्ट अधिकांश उपयोग-मामलों के लिए पर्याप्त होना चाहिए।

जैसे package.json में आप केवल 1 कार्यकर्ता के साथ स्क्रिप्ट "परीक्षण" प्राप्त कर सकते हैं।

"scripts": { 
    "test": "jest -w 1" 
    }, 

यह आपको फ़ाइल में केवल 1 परीक्षण चलाना चाहते हैं तो एक ही बार में केवल 1 परीक्षण फ़ाइल लेकिन परीक्षण फ़ाइल

के अंदर सभी परीक्षण चलाता है, तो का उपयोग test.only

http://facebook.github.io/jest/docs/en/api.html#testonlyname-fn

और यदि आप फ़ाइल में सभी परीक्षण चलाने के लिए चाहते हैं लेकिन एक-एक-एक, मैं अक्सर इस पैटर्न का उपयोग करें:

const tests = []; 
test.push({input: 'foo', output: 'bar'}); 

tests.forEach((t) => { 
    test(JSON.stringify(t),() => { 
    expect(functionTesting(t.input)).toBe(t.output); 
    }) 
}) 
+0

यह 'description.only' के साथ काम नहीं करता है –

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