Beheben von Diskrepanzen bei der Codeabdeckung in separaten Ordnern für GO-Projekte
Bei der Arbeit an einem Projekt mit einer bestimmten Struktur, in der sich Pakete und ihre Tests befanden sich in separaten Ordnern befinden, ist ein Problem aufgetreten. Trotz der Ausführung des Codes in stuff.go von stuff_test.go zeigte der Abdeckungsbericht 0,0 % an.
Mögliche Ursache und Lösung
Das Problem entsteht durch die Standardeinstellung von GO Abdeckungsanalyseverhalten, das nur für das getestete Paket gilt. Um dies zu umgehen, kann das Flag -coverpkg verwendet werden, um die Pakete anzugeben, für die Abdeckungsdaten erfasst werden sollen.
Mit der Option -coverpkg können Sie angeben, dass Tests in test/stuff/stuff_test.go dies tun sollen Berücksichtigen Sie auch die Codeabdeckung für stuff/stuff.go. Dadurch wird sichergestellt, dass die Abdeckungsanalyse alle relevanten Pakete umfasst.
Hier ist ein Beispielbefehl, der die Verwendung von -coverpkg demonstriert:
go test ./test/... -coverpkg ./...
Dieser Befehl führt Tests in Paketen aus, die dem Testpfad und den Includes entsprechen Abdeckungsinformationen für alle Pakete, die mit ./.... übereinstimmen.
Anzeigen der Abdeckung Bericht
Sobald die Tests ausgeführt wurden, können Sie den Abdeckungsbericht mit den folgenden Befehlen erstellen und anzeigen:
go tool cover -html=cover.out
Dieser Befehl generiert einen HTML-Abdeckungsbericht mit dem Namen cover.out, die in einem Webbrowser geöffnet werden kann, um die Abdeckungsdaten anzuzeigen.
Das obige ist der detaillierte Inhalt vonWarum wird die Abdeckung meines Go-Codes trotz erfolgreicher Testausführung in separaten Ordnern mit 0 % angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!