Web3 और DApp विकास की मूल बातें · पाठ

कवरेज और Gas रिपोर्ट

गुणवत्ता मेट्रिक

पाठ 3, कुल 4 में से13 चरण

कवरेज और Gas रिपोर्ट, CoddyKit पर Web3 और DApp विकास की मूल बातें का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Web3 और DApp विकास की मूल बातें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

गुणवत्ता मापदंड

कॉन्ट्रैक्ट की गुणवत्ता का आकलन करने में दो मापदंड मदद करते हैं:

  • कोड कवरेज — आपके परीक्षणों द्वारा Solidity कोड का कितना भाग चलाया जाता है।
  • गैस उपयोग — आपके फ़ंक्शन को कॉल करना कितना महँगा है।

दोनों Hardhat प्लगइन के रूप में उपलब्ध हैं और Toolbox में गैस रिपोर्टर शामिल है।

कवरेज आपको क्या बताता है

कवरेज आपके परीक्षणों द्वारा छुए गए कथनों, शाखाओं और फ़ंक्शन का प्रतिशत मापता है।

  • कम कवरेज का अर्थ है ऐसे कोड पथ जिनका परीक्षण नहीं हुआ — इनमें छिपी हुई त्रुटियाँ हो सकती हैं।
  • 100% कवरेज शुद्धता की गारंटी नहीं देता, लेकिन कमियाँ खतरे के संकेत हैं।

कवरेज इंस्टॉल करना

solidity-coverage प्लगइन आपके कॉन्ट्रैक्ट में उपकरण जोड़ता है और कवरेज की रिपोर्ट देता है:

npm install --save-dev solidity-coverage

फिर इसे अपने कॉन्फ़िगरेशन में आवश्यक करें:

require("solidity-coverage");
npm install --save-dev solidity-coverage
// in hardhat.config.js:
require("solidity-coverage");

कवरेज चलाना

अपने परीक्षणों को उपकरणों के साथ चलाने के लिए कवरेज कार्य चलाएँ:

npx hardhat coverage

यह प्रत्येक फ़ाइल के लिए एक तालिका दिखाता है और coverage/ में एक HTML रिपोर्ट लिखता है, जिसे आप ब्राउज़र में खोल सकते हैं।

npx hardhat coverage

कवरेज तालिका पढ़ना

रिपोर्ट में चार कॉलम होते हैं:

  • % Stmts — निष्पादित कथन।
  • % Branch — अपनाई गई if/else शाखाएँ।
  • % Funcs — कॉल किए गए फ़ंक्शन।
  • % Lines — पहुँची गई पंक्तियाँ।

शाखा कवरेज पूरा करना अक्सर सबसे कठिन होता है — सुनिश्चित करें कि हर शर्त के दोनों पक्षों का परीक्षण हुआ हो।

गैस रिपोर्टर

hardhat-gas-reporter (Toolbox में शामिल) परीक्षणों के दौरान प्रत्येक फ़ंक्शन कॉल की गैस लागत दिखाता है। इसे कॉन्फ़िगरेशन में सक्षम करें:

module.exports = { gasReporter: { enabled: true, }, };

यह npx hardhat test के बाद एक तालिका दिखाता है।

module.exports = {
  gasReporter: {
    enabled: true,
  },
};

गैस तालिका पढ़ना

गैस रिपोर्ट प्रत्येक method के लिए यह जानकारी दिखाती है:

  • Min / Max / Avg — कॉल के दौरान न्यूनतम, अधिकतम और औसत गैस।
  • # calls — परीक्षणों में यह कितनी बार चला।
  • Deployment cost — प्रत्येक कॉन्ट्रैक्ट की परिनियोजन लागत।

न्यूनतम और अधिकतम के बीच बहुत अधिक अंतर वाले फ़ंक्शन में अक्सर जाँचने योग्य सशर्त तर्क होता है।

फ़िएट मुद्रा में मूल्य निर्धारण

गैस रिपोर्टर गैस मूल्य और Token मूल्य प्राप्त करके वास्तविक धन में अनुमानित लागत दिखा सकता है:

gasReporter: { enabled: true, currency: "USD", gasPrice: 30, }

इससे हितधारकों को संचालन की वास्तविक लागत समझाने में मदद मिलती है।

gasReporter: {
  enabled: true,
  currency: "USD",
  gasPrice: 30,
}

Env Vars से चालू या बंद करना

कवरेज और गैस रिपोर्टिंग से परीक्षण धीमे हो जाते हैं, इसलिए इन्हें एक पर्यावरण चर के पीछे नियंत्रित करें:

gasReporter: { enabled: process.env.REPORT_GAS === "true", }

रिपोर्ट की आवश्यकता होने पर ही REPORT_GAS=true npx hardhat test चलाएँ।

gasReporter: {
  enabled: process.env.REPORT_GAS === "true",
}

CI में मापदंडों का उपयोग

निरंतर एकीकरण में आप यह कर सकते हैं:

  • यदि कवरेज निर्धारित सीमा से नीचे गिर जाए तो बिल्ड विफल कर दें।
  • पुल अनुरोधों में गैस के अंतर की टिप्पणी जोड़ें।

कोडबेस बढ़ने पर ये सुरक्षा उपाय गुणवत्ता को चुपचाप गिरने से रोकते हैं।

फ़ाइल में आउटपुट लिखना

गैस रिपोर्टर अपनी तालिका को संग्रहित करने या CI में अंतर की तुलना करने के लिए फ़ाइल में लिख सकता है:

gasReporter: { enabled: true, outputFile: "gas-report.txt", noColors: true, }

रंग बंद करने से फ़ाइल पढ़ने योग्य रहती है। कवरेज इसी तरह एक coverage/ HTML रिपोर्ट और एक lcov.info फ़ाइल बनाता है।

gasReporter: {
  enabled: true,
  outputFile: "gas-report.txt",
  noColors: true,
}

त्वरित जाँच

कवरेज और गैस रिपोर्ट के बारे में अपनी समझ जाँचें।

पुनरावलोकन

आपने परीक्षण और गैस की गुणवत्ता मापना सीखा।

  • solidity-coverage, npx hardhat coverage के माध्यम से कथन, शाखा, फ़ंक्शन और पंक्ति कवरेज की रिपोर्ट देता है।
  • शाखा कवरेज बिना परीक्षण वाले पथों को सबसे अच्छी तरह उजागर करता है।
  • Toolbox में शामिल गैस रिपोर्टर प्रत्येक method की गैस और परिनियोजन लागत दिखाता है।
  • यह कॉल की कीमत फ़िएट मुद्रा में बता सकता है और env var से चालू या बंद किया जा सकता है।
  • प्रतिगमन रोकने के लिए CI में सीमाएँ लागू करें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Web3 और DApp विकास की मूल बातें सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
29
पाठ
105

अक्सर पूछे जाने वाले प्रश्न

क्या “कवरेज और Gas रिपोर्ट” पाठ निःशुल्क है?

हाँ — Web3 और DApp विकास की मूल बातें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कवरेज और Gas रिपोर्ट” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“कवरेज और Gas रिपोर्ट” में मैं क्या सीखूँगा?

गुणवत्ता मेट्रिक आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Web3 और DApp विकास की मूल बातें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Web3 और DApp विकास की मूल बातें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Web3 और DApp विकास की मूल बातें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“कवरेज और Gas रिपोर्ट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Web3 और DApp विकास की मूल बातें पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Web3 और DApp विकास की मूल बातें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. टेस्ट लिखना
  2. रीवर्ट और इवेंट का परीक्षण
  3. कवरेज और Gas रिपोर्ट
  4. फ़िक्स्चर
← Web3 और DApp विकास की मूल बातें पर वापस जाएँ