Heim > Backend-Entwicklung > Golang > Wie kann ich in Go umfassende Code-Coverage-Berichte erstellen?

Wie kann ich in Go umfassende Code-Coverage-Berichte erstellen?

Susan Sarandon
Freigeben: 2024-12-27 19:11:09
Original
819 Leute haben es durchsucht

How Can I Generate Comprehensive Code Coverage Reports in Go?

Umfassende Code-Abdeckungsberichte in Go

In der Go-Entwicklung ist das Abrufen einzelner Paketabdeckungsberichte mithilfe des Flags -cover ganz einfach. Es kann jedoch schwierig sein, einen ganzheitlichen Überblick über die Abdeckung über mehrere Pakete hinweg zu erhalten.

Um dieses Problem zu beheben, wurde mit Go 1.10 eine deutliche Verbesserung bei der Codeabdeckungsberichterstattung eingeführt. Das Flag -coverpkg akzeptiert jetzt eine durch Kommas getrennte Liste von Mustern, die mit Paketabhängigkeiten abgeglichen werden sollen, sodass Sie bestimmte Bereiche für die Abdeckungsanalyse gezielt ansprechen können.

Um einen umfassenden Abdeckungsbericht zu erstellen, können Sie jetzt die folgenden Befehle ausführen:

go test -v -coverpkg=./... -coverprofile=profile.cov ./...
go tool cover -func profile.cov
Nach dem Login kopieren

Dieser Ansatz sammelt Abdeckungsdaten für alle Pakete, die dem ./...-Muster entsprechen, und generiert einen konsolidierten Bericht, der eine detaillierte Abdeckung enthält Informationen.

Legacy-Lösung für ältere Go-Versionen

Vor Go 1.10 erforderte das Erhalten umfassender Abdeckungsberichte einen anderen Ansatz. Eine solche in Bash implementierte Lösung finden Sie im Gosweep-Projekt auf GitHub:

#!/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
Nach dem Login kopieren

Dieses Skript sucht rekursiv nach Verzeichnissen, die Go-Pakete enthalten, führt Go-Tests mit aktivierter Abdeckung aus und aggregiert die einzelnen Abdeckungsberichte in eine einzelne Datei „profile.cov“ umwandeln. Nachdem Sie die Abdeckungsdaten generiert haben, können Sie mit go tool cover -func profile.cov einen detaillierten Bericht anzeigen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go umfassende Code-Coverage-Berichte erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage