Grundlæggende udvikling af Web3- og DApp-programmer · Lektion

Coverage- og gasrapporter

Kvalitetsmålinger

Lektion 3 af 413 trin

Coverage- og gasrapporter er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende udvikling af Web3- og DApp-programmer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

Kvalitetsmålinger

To målinger hjælper med at vurdere kontraktens kvalitet:

  • Kodedækning — hvor stor en del af din Solidity-kode der gennemløbes af test.
  • Gasforbrug — hvor dyrt det er at kalde dine funktioner.

Begge dele fås som Hardhat-plugins, og Toolbox indeholder gas-reporteren.

Hvad kodedækning fortæller dig

Dækning måler procentdelen af sætninger, forgreninger og funktioner, som dine test berører.

  • Lav dækning betyder, at kodeforløb ikke er testet — og kan indeholde skjulte fejl.
  • 100 % dækning garanterer ikke korrekthed, men huller er tydelige advarselssignaler.

Installation af kodedækning

Pluginet solidity-coverage instrumenterer dine kontrakter og rapporterer dækningen:

npm install --save-dev solidity-coverage

Indlæs det derefter i din konfiguration:

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

Kørsel af kodedækning

Kør dækningsopgaven for at udføre dine test med instrumentering:

npx hardhat coverage

Den udskriver en tabel for hver fil og skriver en HTML-rapport til coverage/, som du kan åbne i en browser.

npx hardhat coverage

Sådan læser du en dækningstabel

Rapporten har fire kolonner:

  • % Stmts — udførte sætninger.
  • % Branch — valgte if/else-forgreninger.
  • % Funcs — kaldte funktioner.
  • % Lines — nåede kodelinjer.

Forgreningsdækning er ofte den sværeste at udfylde — sørg for, at begge sider af hver betingelse bliver testet.

Gas-reporteren

hardhat-gas-reporter (i Toolbox) udskriver gasomkostningerne for hvert funktionskald under test. Aktivér den i konfigurationen:

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

Den udskriver en tabel efter npx hardhat test.

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

Sådan læser du gastabellen

Gasrapporten viser følgende for hver metode:

  • Min / Max / Avg gas på tværs af kald.
  • # calls — hvor ofte den blev kørt i test.
  • Deployment cost for hver kontrakt.

Funktioner, der varierer meget mellem minimum og maksimum, har ofte betinget logik, som bør undersøges.

Prissætning i fiat

Gas-reporteren kan vise anslåede omkostninger i rigtige penge ved at hente en gaspris og en tokenpris:

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

Det hjælper dig med at kommunikere operationernes reelle omkostninger til interessenter.

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

Aktivering med miljøvariabler

Kodedækning og gasrapportering gør test langsommere, så begræns dem ved hjælp af en miljøvariabel:

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

Kør kun REPORT_GAS=true npx hardhat test, når du har brug for rapporten.

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

Brug af målinger i CI

I continuous integration kan du:

  • Få bygningen til at fejle, hvis dækningen falder under en tærskel.
  • Kommentere forskelle i gasforbruget på pull requests.

Disse sikkerhedsforanstaltninger forhindrer, at kvaliteten langsomt forringes, efterhånden som kodebasen vokser.

Skrivning til en fil

Gas-reporteren kan skrive sin tabel til en fil, så den kan arkiveres eller sammenlignes i CI:

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

Hvis du deaktiverer farver, bliver filen lettere at læse. Kodedækning producerer på samme måde en coverage/ HTML-rapport og en lcov.info-fil.

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

Hurtigt tjek

Test din forståelse af dækning og gasrapporter.

Opsummering

Du har lært at måle kvaliteten af test og gasforbrug.

  • solidity-coverage rapporterer sætnings-, forgrenings-, funktions- og linjedækning via npx hardhat coverage.
  • Forgreningsdækning afslører bedst kodeforløb, der ikke er testet.
  • Gas-reporteren (i Toolbox) udskriver gasforbrug og deploymentsomkostninger pr. metode.
  • Den kan prissætte kald i fiat og aktiveres eller deaktiveres med en miljøvariabel.
  • Håndhæv tærskler i CI for at forhindre forringelser.
Gratis at komme i gang

Lær Grundlæggende udvikling af Web3- og DApp-programmer med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
29
Lektioner
105

Ofte stillede spørgsmål

Er lektionen “Coverage- og gasrapporter” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “Coverage- og gasrapporter”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Coverage- og gasrapporter”?

Kvalitetsmålinger Du øver dig i Grundlæggende udvikling af Web3- og DApp-programmer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende udvikling af Web3- og DApp-programmer?

Der kræves ingen tidligere erfaring. Grundlæggende udvikling af Web3- og DApp-programmer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Coverage- og gasrapporter”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende udvikling af Web3- og DApp-programmer-lektion?

Ja. Alle Grundlæggende udvikling af Web3- og DApp-programmer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Skriv tests
  2. Test af reverts og events
  3. Coverage- og gasrapporter
  4. Fixtures
← Tilbage til Grundlæggende udvikling af Web3- og DApp-programmer