Heim >Backend-Entwicklung >Golang >Wie kann ich eine genaue Go-Code-Abdeckung erreichen, wenn sich Quell- und Testdateien in separaten Ordnern befinden?
Codeabdeckungserkennung für getrennte Ordner in Go
Beim Testen Ihres Go-Codes ist es wichtig, eine angemessene Codeabdeckung sicherzustellen, um die Testeffektivität zu überprüfen. Wenn Ihre Projektstruktur jedoch Ihren Quellcode und Ihre Testdateien in verschiedene Ordner unterteilt, kann es zu Problemen beim Abrufen genauer Informationen zur Codeabdeckung kommen.
In diesem Szenario umfasst Ihre Projektstruktur stuff/stuff.go und test/ stuff/stuff_test.go gehört zu verschiedenen Paketen (stuff bzw. test), für die die Testausführung möglicherweise keine Abdeckung meldet stuff.go.
Lösung
Um dieses Problem zu beheben, können Sie beim Ausführen von go test das Flag -coverpkg nutzen. Mit diesem Flag können Sie die Pakete angeben, für die Sie Abdeckungsinformationen aufzeichnen möchten. Mit diesem Flag können Sie sicherstellen, dass Ihre Testausführung die gewünschten Pakete umfasst und die Codeabdeckung für Ihren Quellcode genau meldet.
Zum Beispiel, um die Abdeckung sowohl für die Sachen als auch für die Testpakete zu analysieren:
go test -coverpkg=./... ./test/...
Abdeckungsbericht anzeigen
Sobald Sie die Tests mit dem entsprechenden Flag -coverpkg ausgeführt haben, können Sie mit go einen Abdeckungsbericht erstellen Werkzeugabdeckung. Dieses Tool erstellt einen HTML-Bericht, der die Abdeckungsinformationen visualisiert und es Ihnen ermöglicht, alle nicht abgedeckten Zeilen in Ihrem Code zu identifizieren.
So erstellen Sie den Bericht:
go tool cover -html=cover.out
Durch Verwendung des Flags -coverpkg können Sie sicherstellen, dass Ihre Testausführung die Codeabdeckung Ihrer getrennten Ordner genau nachverfolgt und so wertvolle Einblicke in die Abdeckung Ihrer Anwendung liefert.
Das obige ist der detaillierte Inhalt vonWie kann ich eine genaue Go-Code-Abdeckung erreichen, wenn sich Quell- und Testdateien in separaten Ordnern befinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!