मैं अपने नोड्स एप्लिकेशन के परीक्षण के लिए मोचा का उपयोग कर रहा हूं। मैं यह पता नहीं लगा पा रहा हूं कि इसकी कोड कवरेज सुविधा का उपयोग कैसे किया जाए। मैंने इसे गुगली करने की कोशिश की, लेकिन कोई उचित ट्यूटोरियल नहीं मिला। कृपया मदद कीजिए।
मैं अपने नोड्स एप्लिकेशन के परीक्षण के लिए मोचा का उपयोग कर रहा हूं। मैं यह पता नहीं लगा पा रहा हूं कि इसकी कोड कवरेज सुविधा का उपयोग कैसे किया जाए। मैंने इसे गुगली करने की कोशिश की, लेकिन कोई उचित ट्यूटोरियल नहीं मिला। कृपया मदद कीजिए।
जवाबों:
आपको कोड कवरेज के लिए एक अतिरिक्त पुस्तकालय की आवश्यकता है, और आप कितनी शक्तिशाली और आसान इतनबुल है इससे उड़ा जा रहे हैं । पास करने के लिए अपने मोचा परीक्षण प्राप्त करने के बाद, निम्नलिखित प्रयास करें:
npm install nyc
अब, उदाहरण के लिए, अपने मौजूदा परीक्षण कमांड के सामने कमांड nyc रखें:
{
"scripts": {
"test": "nyc mocha"
}
}
istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
के लिए एक विहित शॉर्टकट है ./node_modules/.bin/
, और बिन फ़ोल्डर में istanbul/lib/cli.js
उपनाम है istanbul
। तो यहाँ एक छोटी सी आज्ञा है:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
अब ( 2020 ) istanbul का उपयोग करने का पसंदीदा तरीका इसकी "आर्ट कमांड लाइन इंटरफ़ेस की स्थिति" nyc है ।
सबसे पहले, इसे अपने प्रोजेक्ट में स्थापित करें
npm i nyc --save-dev
फिर, यदि आपके पास एक npm आधारित परियोजना है, तो अपने mocha परीक्षणों के कोड कवरेज को निष्पादित करने के लिए scripts
अपने पैकेज के ऑब्जेक्ट के अंदर परीक्षण स्क्रिप्ट बदलें।
{
"scripts": {
"test": "nyc --reporter=text mocha"
}
}
अब अपने परीक्षण चलाएं
npm test
और आपको अपने परीक्षण के आउटपुट के बाद अपने कंसोल में इस तरह एक तालिका दिखाई देगी:
महज प्रयोग करें
nyc --reporter=html
के बजाय text
। अब यह अंदर एक रिपोर्ट का उत्पादन करेगा ./coverage/index.html
।
इस्तांबुल रिपोर्ट प्रारूपों की एक विस्तृत श्रृंखला का समर्थन करता है। आप के लिए सबसे उपयोगी खोजने के लिए इसकी रिपोर्ट लाइब्रेरी देखें । बस --reporter=REPORTER_NAME
आप चाहते हैं कि प्रत्येक प्रारूप के लिए एक विकल्प जोड़ें । उदाहरण के लिए, साथ
nyc --reporter=html --reporter=text
आपके पास कंसोल और HTML रिपोर्ट दोनों होंगे।
बस अपने आप में एक और स्क्रिप्ट जोड़ें और केवल अपने टेस्ट रनर के साथ स्क्रिप्ट package.json
छोड़ें test
(जैसे मोचा):
{
"scripts": {
"test": "mocha",
"test-with-coverage": "nyc --reporter=text mocha"
}
}
अब इस कस्टम स्क्रिप्ट को चलाएँ
npm run test-with-coverage
कोड कवरेज के साथ परीक्षण चलाने के लिए।
कुल कोड कवरेज 90% से कम होने पर विफल:
nyc --check-coverage --lines 90
कम से कम एक फ़ाइल का कोड कवरेज 90% से कम होने पर विफल:
nyc --check-coverage --lines 90 --per-file
--reporter=html
सक्षम है, लेकिन html फ़ाइल हमेशा खाली है, वहाँ खुला ब्लॉक या% आदि के बारे में कुछ भी नहीं दिखाया गया है सिर्फ मेज के हेडर
ब्लैंकेट.जेएस एकदम सही काम करता है।
npm install --save-dev blanket
आपके परीक्षण / परीक्षणों के सामने। js
require('blanket')({
pattern: function (filename) {
return !/node_modules/.test(filename);
}
});
Daud mocha -R html-cov > coverage.html
istanbul cover node_modules/mocha/bin/_mocha
।