Abdeckungsstatistiken für externe Tests
In Go wird empfohlen, die Tests im selben Paket zu belassen wie den Code, den sie testen. Wenn Ihre Codebasis jedoch aus zahlreichen Testdateien besteht, bevorzugen Sie möglicherweise eine übersichtlichere Organisation, indem Sie diese Tests in ein anderes Paket aufteilen. Dieser Ansatz beschränkt die Tests auf den Zugriff auf die öffentliche API des Pakets und fördert so eine bessere Organisation und Kapselung.
Angesichts der folgenden Struktur:
api_client: Client.go ArtistService.go api_client_tests: ArtistService.Events_test.go ArtistService.Info_test.go UtilityFunction.go
Ausführen von go test bandsintown-api/api_client_tests -cover meldet 100 % Abdeckung, aber diese Abdeckung bezieht sich nur auf UtilityFunction.go.
Lösung:
Um Abdeckungsstatistiken für das getestete api_client-Paket zu erhalten, ohne die Pakete zusammenzuführen:
go test -cover -coverpkg "api_client" "api_client_tests"
Es ist jedoch zu beachten, dass die Aufteilung von Code- und Testdateien in verschiedene Verzeichnisse im Widerspruch zur Go-Konvention steht. Wenn Black-Box-Tests gewünscht sind, bei denen auf nichts außerhalb des Pakets zugegriffen werden kann, sollten Sie die Tests in ein neues Paket verschieben, ohne die Dateien neu zu organisieren:
api_client.go:
<code class="go">package api_client // Only accessible within the package var privateVar = 10 func Method() {}</code>
api_client_test.go:
<code class="go">package api_client_tests import "testing" func TestClient(t *testing.T) { Method() // Still accessible from another package }</code>
Das obige ist der detaillierte Inhalt vonWie erhalte ich genaue Abdeckungsstatistiken für externe Tests in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!