Heim > Backend-Entwicklung > Golang > Warum zeigt mein Go-Code-Abdeckungsbericht beim Testen über verschiedene Ordner hinweg 0 % an?

Warum zeigt mein Go-Code-Abdeckungsbericht beim Testen über verschiedene Ordner hinweg 0 % an?

Patricia Arquette
Freigeben: 2024-11-25 09:55:12
Original
635 Leute haben es durchsucht

Why Does My Go Code Coverage Report Show 0% When Testing Across Separate Folders?

Debuggen von Inkonsistenzen bei der Codeabdeckung in separaten Go-Ordnern

Beim Unit-Testen von Code in verschiedenen Ordnern innerhalb eines Go-Projekts kann es zu Diskrepanzen in der Codeabdeckungsberichterstattung kommen. Dies kann frustrierend sein, da Sie möglicherweise erwarten, dass der gesamte Code abgedeckt wird, wenn Sie Tests in den Unterordnern ausführen.

Problem:

Obwohl Code aus dem Stuff-Ordner im ausgeführt wird Im Ordner stuff_test zeigt der Abdeckungsbericht 0 % der abgedeckten Aussagen an. Es handelt sich um die folgende Projektstruktur:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test
Nach dem Login kopieren

Mögliche Ursache:

Die Codeabdeckungsanalyse ist standardmäßig auf das getestete Paket beschränkt. In diesem Fall befindet sich das Paket stuff_test in einem anderen Ordner als das Paket stuff, das das Problem verursacht.

Lösung:

Um dieses Problem zu beheben, können Sie Folgendes verwenden: die Option -coverpkg beim Ausführen von go test. Mit dieser Option können Sie die Pakete angeben, für die Sie Abdeckungsinformationen sammeln möchten.

go test ./test/... -coverprofile=cover.out -coverpkg ./...
Nach dem Login kopieren

Dieser Befehl wendet die Abdeckungsanalyse auf alle Pakete an, die dem angegebenen Muster entsprechen, in diesem Fall alle Pakete im aktuelles Verzeichnis und seine Unterverzeichnisse.

Anzeigen des Abdeckungsberichts:

Sobald die Tests ausgeführt wurden, können Sie eine Abdeckung generieren Erstellen Sie einen Bericht mit dem Befehl go tool cover.

go tool cover -html=cover.out
Nach dem Login kopieren

Dieser Befehl erstellt einen HTML-Bericht mit dem Namen cover.out, den Sie in einem Webbrowser öffnen können, um die Abdeckungsinformationen für alle angegebenen Pakete anzuzeigen.

Das obige ist der detaillierte Inhalt vonWarum zeigt mein Go-Code-Abdeckungsbericht beim Testen über verschiedene Ordner hinweg 0 % an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage