Coverage- og gasrapporter
Kvalitetsmålinger
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-coverageIndlæ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 coverageDen udskriver en tabel for hver fil og skriver en HTML-rapport til coverage/, som du kan åbne i en browser.
npx hardhat coverageSå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-coveragerapporterer sætnings-, forgrenings-, funktions- og linjedækning vianpx 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.
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
- Skriv tests
- Test af reverts og events
- Coverage- og gasrapporter
- Fixtures