Web3 & DApp Development Fundamentals · Ders

Kapsam ve Gas Raporları

Kalite ölçütleri

3. ders / 413 adım

Kapsam ve Gas Raporları, CoddyKit'te ücretsiz bir Web3 & DApp Development Fundamentals dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Web3 & DApp Development Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Web3 & DApp Development Fundamentals kursu toplamda 4 dersten oluşur.

Kalite Ölçütleri

Sözleşme kalitesini değerlendirmeye iki ölçüt yardımcı olur:

  • Kod kapsaması — Solidity kodunuzun ne kadarının testler tarafından çalıştırıldığı.
  • Gas kullanımı — işlevlerinizi çağırmanın ne kadar maliyetli olduğu.

Her ikisi de Hardhat eklentileri olarak kullanılabilir ve Toolbox, gas raporlayıcısını içerir.

Kapsama Size Ne Söyler

Kapsama, testlerinizin dokunduğu ifadelerin, dalların ve işlevlerin yüzdesini ölçer.

  • Düşük kapsama, test edilmemiş kod akışları ve olası gizli hatalar anlamına gelir.
  • %100 kapsama doğruluğu garanti etmez; ancak boşluklar önemli uyarı işaretleridir.

Kapsamayı Kurma

solidity-coverage eklentisi, sözleşmelerinizi araçlandırır ve kapsama raporu oluşturur:

npm install --save-dev solidity-coverage

Ardından yapılandırmanızda onu içe aktarın:

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

Kapsamayı Çalıştırma

Testlerinizi araçlandırmayla çalıştırmak için kapsama görevini başlatın:

npx hardhat coverage

Bu komut her dosya için bir tablo yazdırır ve tarayıcıda açabileceğiniz bir HTML raporunu coverage/ içine yazar.

npx hardhat coverage

Kapsama Tablosunu Okuma

Raporda dört sütun bulunur:

  • % Stmts — çalıştırılan ifadeler.
  • % Branch — yürütülen if/else dalları.
  • % Funcs — çağrılan işlevler.
  • % Lines — ulaşılan satırlar.

Dal kapsamasını tamamlamak çoğu zaman en zordur; her koşulun her iki tarafının da test edildiğinden emin olun.

Gas Raporlayıcısı

Toolbox içinde bulunan hardhat-gas-reporter, testler sırasında her işlev çağrısının gas maliyetlerini yazdırır. Bunu yapılandırmada etkinleştirin:

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

Bu, npx hardhat test komutundan sonra bir tablo üretir.

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

Gas Tablosunu Okuma

Gas raporu, her method için şunları gösterir:

  • Çağrılar genelinde Min / Max / Avg gas değerleri.
  • # calls — testlerde kaç kez çalıştırıldığı.
  • Her sözleşme için Deployment cost.

Minimum ve maksimum değerleri arasında büyük fark bulunan işlevlerde genellikle incelenmeye değer koşullu mantık vardır.

Fiat Para Biriminde Fiyatlandırma

Gas raporlayıcısı, gas fiyatını ve Token fiyatını alarak tahmini maliyetleri gerçek para cinsinden gösterebilir:

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

Bu, işlemlerin gerçek maliyetini paydaşlara aktarmanıza yardımcı olur.

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

Ortam Değişkenleriyle Açıp Kapatma

Kapsama ve gas raporlaması testleri yavaşlatır; bu nedenle bunları bir ortam değişkeninin arkasında koşullu olarak etkinleştirin:

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

Raporu yalnızca gerektiğinde almak için REPORT_GAS=true npx hardhat test komutunu çalıştırın.

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

Ölçütleri CI'da Kullanma

Sürekli tümleştirmede şunları yapabilirsiniz:

  • Kapsama bir eşik değerin altına düşerse derlemeyi başarısız kılabilirsiniz.
  • Çekme isteklerine gas farkları hakkında yorum ekleyebilirsiniz.

Bu korumalar, kod tabanı büyüdükçe kalitenin fark edilmeden gerilemesini önler.

Bir Dosyaya Çıktı Yazma

Gas raporlayıcısı, tablosunu arşivlemek veya CI'da karşılaştırmak için bir dosyaya yazabilir:

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

Renkleri devre dışı bırakmak dosyanın okunabilir kalmasını sağlar. Kapsama da benzer şekilde bir coverage/ HTML raporu ve bir lcov.info dosyası üretir.

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

Kısa Kontrol

Kapsama ve gas raporlarını ne kadar anladığınızı test edin.

Özet

Test ve gas kalitesini ölçmeyi öğrendiniz.

  • solidity-coverage, npx hardhat coverage aracılığıyla ifade, dal, işlev ve satır kapsamasını raporlar.
  • Dal kapsaması, test edilmemiş akışları en iyi şekilde ortaya çıkarır.
  • Toolbox içindeki gas raporlayıcısı, method başına gas değerlerini ve dağıtım maliyetlerini yazdırır.
  • Çağrıları fiat para biriminde fiyatlandırabilir ve bir ortam değişkeniyle açılıp kapatılabilir.
  • Gerilemeleri önlemek için CI'da eşik değerlerini zorunlu kılın.
Başlamak ücretsiz

Yapay zeka eğitmeniyle Web3 & DApp Development Fundamentals öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
29
Dersler
105

Sıkça Sorulan Sorular

“Kapsam ve Gas Raporları” dersi ücretsiz mi?

Evet — “Kapsam ve Gas Raporları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Web3 & DApp Development Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Web3 & DApp Development Fundamentals kursu toplamda 4 dersten oluşur.

“Kapsam ve Gas Raporları” dersinde ne öğreneceğim?

Kalite ölçütleri Web3 & DApp Development Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Web3 & DApp Development Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Web3 & DApp Development Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Kapsam ve Gas Raporları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Web3 & DApp Development Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Web3 & DApp Development Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Test Yazma
  2. Geri Almaları ve Olayları Test Etme
  3. Kapsam ve Gas Raporları
  4. Fikstürler
← Web3 & DApp Development Fundamentals Sayfasına Dön