Heim > Backend-Entwicklung > Golang > Wie kann ich eine genaue Go-Code-Abdeckung über verschiedene Ordner hinweg erreichen?

Wie kann ich eine genaue Go-Code-Abdeckung über verschiedene Ordner hinweg erreichen?

Barbara Streisand
Freigeben: 2024-11-26 15:29:09
Original
504 Leute haben es durchsucht

How Can I Get Accurate Go Code Coverage Across Separate Folders?

Erkennen der Codeabdeckung über separate Ordner in Golang

In einem Projekt mit einer Struktur wie:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test
Nach dem Login kopieren

wann Beim Ausführen von stuff_test wird eine Codeabdeckung für stuff.go von 0,0 % gemeldet. Während das Verschieben von *_test.go in den Stuff-Ordner das Problem löst, wirft es Fragen zur Projektstruktur und zu Go-Best Practices auf.

Lösung über -coverpkg Flag

An Um diese Situation zu lösen, ohne die Projektstruktur zu ändern, verwenden Sie das Flag -coverpkg. Mit diesem Flag können Sie die Pakete angeben, die in die Abdeckungsanalyse einbezogen werden sollen.

Für die gegebene Projektstruktur sieht der Befehl wie folgt aus:

go test ./test/... -coverprofile=cover.out -coverpkg ./...
Nach dem Login kopieren

Dieser Befehl analysiert alle Tests in ./test/. .. Pfad für Abdeckungsinformationen, einschließlich Paketen, die zu ./.... passen.

Generieren und Anzeigen der Abdeckung Bericht

Sobald die Tests ausgeführt wurden, verwenden Sie das Go-Tool Cover, um einen Abdeckungsbericht zu erstellen:

go tool cover -html=cover.out
Nach dem Login kopieren

Dadurch wird ein HTML-Bericht erstellt, der die Abdeckungsinformationen für die analysierten Pakete detailliert beschreibt und bereitstellt Einblicke in die Codeabdeckung in den Ordnern des Projekts.

Das obige ist der detaillierte Inhalt vonWie kann ich eine genaue Go-Code-Abdeckung über verschiedene Ordner hinweg erreichen?. 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