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
Barbara StreisandOriginal
2024-11-26 15:29:09463Durchsuche

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

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 ./...

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

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!

Stellungnahme:
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