Heim >Backend-Entwicklung >Golang >Wie kann ich die Abdeckung für ein Paket mit separaten Testdateien in Go messen?
Testen der Paketabdeckung mit getrennten Testdateien
Beim Organisieren einer Codebasis mit zahlreichen Testdateien kann es vorteilhaft sein, Tests von den tatsächlichen zu trennen Codebasis für Klarheit und Einhaltung von Best Practices. In solchen Szenarien befinden sich die Testdateien möglicherweise in einem anderen Paket als der zu testende Code.
Eine potenzielle Herausforderung entsteht beim Abrufen von Abdeckungsstatistiken für das tatsächlich zu testende Paket. Standardmäßig bieten Tests nur Abdeckung für das Paket, in dem sie sich befinden. Dieses Problem ist auf den Ansatz von Go zurückzuführen, der vorschreibt, dass Code- und Testdateien innerhalb desselben Pakets koexistieren sollten.
Lösung
Glücklicherweise bietet Go eine Lösung für dieses Dilemma:
go test -cover -coverpkg "api_client" "api_client_tests"
Durch Angabe des Flags „-coverpkg“ können Sie Go anweisen, die Abdeckung für das angegebene Paket („api_client“ in diesem Fall) zu messen ), während Tests aus einem separaten Paket („api_client_tests“) ausgeführt werden. Dadurch können Sie die Abdeckung Ihres API-Client-Pakets genau ermitteln, ohne es mit den Testdateien konsolidieren zu müssen.
Alternativer Ansatz
Dabei können getrennte Testpakete verwendet werden Obwohl sie organisatorische Vorteile bieten, ist es erwähnenswert, dass dieser Ansatz von der herkömmlichen Go-Methode zum Organisieren von Code und Tests abweicht. Wenn Black-Box-Tests Ihr Hauptziel sind, bei dem nur öffentliche Paket-APIs für Tests zugänglich sind, steht eine alternative Methode zur Verfügung:
Das obige ist der detaillierte Inhalt vonWie kann ich die Abdeckung für ein Paket mit separaten Testdateien in Go messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!