Heim >Backend-Entwicklung >Golang >Wie kombiniere ich Code-Coverage-Ergebnisse aus mehreren Go-Paketen?
So konsolidieren Sie Code-Coverage-Ergebnisse für mehrere Pakete in Go
Beim Testen mehrerer Pakete in einer Go-Bibliothek kann es von Vorteil sein, sie zu erhalten einen umfassenden Überblick über die Codeabdeckung. Standardmäßig stellt die Verwendung des Flags -cover mit go test Abdeckungsinformationen für einzelne Pakete bereit.
Um Abdeckungsdaten über alle Pakete hinweg zu aggregieren, können Sie einen von zwei Ansätzen verwenden:
Verwenden -coverpkg in Go 1.10 und höher:
In Go 1.10 und höher können Sie mit dem Flag -coverpkg a angeben Durch Kommas getrennte Liste der Abdeckungsziele. Um alle Abhängigkeiten des Testpakets abzudecken, verwenden Sie:
go test -v -coverpkg=./... -coverprofile=profile.cov ./... go tool cover -func profile.cov
Verwenden eines Bash-Skripts in früheren Go-Versionen:
Für Go-Versionen vor 1.10 sollten Sie die Verwendung in Betracht ziehen ein Bash-Skript zum Sammeln und Konsolidieren von Abdeckungsdaten:
#!/bin/bash set -e echo 'mode: count' > profile.cov for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do if ls $dir/*.go &> /dev/null; then go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir if [ -f $dir/profile.tmp ] then cat $dir/profile.tmp | tail -n +2 >> profile.cov rm $dir/profile.tmp fi fi done go tool cover -func profile.cov
Dieses Skript durchläuft Verzeichnisse mit Go-Dateien und führt Tests aus mit aktivierter Abdeckung und Anhängen der Ergebnisse an eine konsolidierte Profildatei (profile.cov). Anschließend können Sie mit dem Go-Tool-Cover eine Zusammenfassung der gesamten Codeabdeckung erstellen.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich Code-Coverage-Ergebnisse aus mehreren Go-Paketen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!