Heim > Artikel > Backend-Entwicklung > Wie kann ich Abdeckungsstatistiken für ein Paket abrufen, wenn sich Tests in einem separaten Verzeichnis befinden?
Abdeckungsstatistiken für Tests in separaten Paketen
Beim Aufteilen von Tests aus Codedateien in verschiedene Pakete wird es schwierig, Abdeckungsstatistiken für zu erhalten Paket im Test. Betrachten Sie die folgende Verzeichnisstruktur:
api_client: Client.go ArtistService.go ... api_client_tests: ArtistService.Events_test.go ArtistService.Info_test.go UtilityFunction.go ...
Das Ausführen von go test bandsintown-api/api_client_tests -cover bietet nur Abdeckung für die UtilityFunction.go-Datei und lässt das eigentliche api_client-Paket aus.
Lösung:
Um dieses Problem zu beheben, verwenden Sie den folgenden Befehl:
go test -cover -coverpkg "api_client" "api_client_tests"
Mit diesem Befehl können Sie die Tests mit speziell für das api_client-Paket aktivierter Abdeckungsmessung ausführen.
Hinweis zur Paketstruktur:
Es ist jedoch zu beachten, dass die Aufteilung von Codedateien und Tests in verschiedene Verzeichnisse in Go nicht empfohlen wird. Stattdessen wird durch das Beibehalten von Tests innerhalb desselben Pakets sichergestellt, dass sie ordnungsgemäß auf die Interaktion mit der öffentlichen API des Pakets beschränkt sind.
Code-Zugänglichkeit für Black-Box-Tests:
Wenn die Ziel ist es, Black-Box-Tests durchzuführen, bei denen private Variablen und Funktionen auf Paketebene für Tests nicht zugänglich sind. Die folgende Problemumgehung kann verwendet werden:
<code class="go">// api_client.go package api_client // will not be accessible outside of the package var privateVar = 10 func Method() { } // api_client_test.go package api_client_tests import "testing" import "api_client" // import the package **without** renaming it func TestBlackBox(t *testing.T) { api_client.Method() // call the method from the "api_client" package }</code>
Dadurch können Tests auf Elemente auf Paketebene zugreifen, ohne das Verzeichnis zu ändern Struktur oder Verletzung der Kapselungsregeln.
Das obige ist der detaillierte Inhalt vonWie kann ich Abdeckungsstatistiken für ein Paket abrufen, wenn sich Tests in einem separaten Verzeichnis befinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!