„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie misst man die Testabdeckung für Go-Integrationstests?

Wie misst man die Testabdeckung für Go-Integrationstests?

Veröffentlicht am 16.11.2024
Durchsuche:835

How to Measure Test Coverage for Go Integration Tests?

Bestimmen der Testabdeckung in Go-Integrationstests

Integrationstests zielen darauf ab, die Funktionalität eines Systems als Ganzes zu bewerten, oft durch Verspottung oder Kontrolle externe Abhängigkeiten. Die Bestimmung der Testabdeckung von Integrationstests stellt jedoch besondere Herausforderungen dar.

Messung der Abdeckung in Nicht-Paket-Tests

In dem beschriebenen Szenario sind die Tests von den Paketen getrennt sie testen. Folglich meldet der Befehl go test -cover eine Abdeckung von 0 %. Um dies zu beheben, kann man die Direktive -coverpkg verwenden.

Verwenden von -coverpkg für die spezifische Paketabdeckung

Die Direktive -coverpkg ermöglicht die Messung der Testabdeckung in einem bestimmten Paket, auch wenn die Tests extern sind. Es verwendet den Paketpfad als Argument.

Zum Beispiel misst der folgende Befehl die Abdeckung des Pakets „mypackage“:

$ go test -cover -coverpkg mypackage ./src/api/...

Dieser Ansatz ermöglicht die gezielte Analyse der Paketabdeckung in Integrationstests.

Beispielabdeckungsausgabe

Betrachten Sie ein Beispiel, bei dem das API-Paket enthält Tests in main_test.go. Der Großteil der Geschäftslogik befindet sich im Paket mypackage. Das Ausführen des Befehls mit -coverpkg bietet eine genauere Darstellung der Abdeckung:

$ go test -cover -coverpkg mypackage ./src/api/...
ok      /api    0.190s  coverage: 50.8% of statements in mypackage
ok      /api/mypackage   0.022s  coverage: 0.7% of statements in mypackage

Diese Ausgabe zeigt, dass die Tests 50,8 % der Anweisungen im mypackage-Paket abdecken. Im Gegensatz dazu würde ohne die Verwendung von -coverpkg die Abdeckung mit 71,0 % höher erscheinen, was auf Tests außerhalb des angegebenen Pakets zurückzuführen ist.

Zusätzliche Überlegungen

Es lohnt sich Beachten Sie, dass Integrationstests aufgrund der Komplexität des Mockings und der Natur systemweiter Tests normalerweise weniger Code abdecken als Unit-Tests. Der oben beschriebene Ansatz bietet jedoch eine Möglichkeit, die tatsächliche Abdeckung von Integrationstests speziell für relevante Pakete zu messen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3