Heim >Backend-Entwicklung >Golang >Wie kann ich eine genaue Go-Code-Abdeckung über verschiedene Ordner hinweg erreichen?
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!