2015-07-14 19 views
9

Vielen Dank im Voraus für die Hilfe ...Golang coverprofile Ausgabeformat

Ich versuche Sinn der -coverprofile cover.out Option in go test, speziell das Format der Datei zu machen.

Abdeckung server.go zum Beispiel ergibt die Ausgabe in cover.out:

mode: set 
github.com/cnuss/api_server/server.go:47.2,48.16 2 0 
github.com/cnuss/api_server/server.go:52.2,53.16 2 0 
github.com/cnuss/api_server/server.go:57.2,58.16 2 0 
github.com/cnuss/api_server/server.go:62.2,63.16 2 0 
github.com/cnuss/api_server/server.go:67.2,68.16 2 0 
github.com/cnuss/api_server/server.go:72.2,73.16 2 0 
github.com/cnuss/api_server/server.go:77.2,78.16 2 0 
  1. Was jede der verschiedenen Spalten bedeuten?
  2. ist das Format der Ausgabe in einem "Standard" -Format, z.B. gcov, xunit usw. und in ein anderes Format konvertierbar?

Danke nochmal !!

Antwort

5

Die Golang-Nuts-Community (https://groups.google.com/forum/#!forum/golang-nuts) stellte ein paar nützliche Tools zur Verfügung, um Go-Coverage in nützlichere Formate zu konvertieren.

JUnit Format (zur Zusammenfassung von Testausführungen):

# Prerequisites 
go get github.com/jstemmer/go-junit-report 
# Tests 
go test -v | go-junit-report > report.xml 

Cobertura Format (für Codeabdeckung Detaillierung):

# Prerequisites 
go get github.com/axw/gocov/gocov 
go get github.com/AlekSi/gocov-xml 
# Coverage 
go test -coverprofile=cover.out 
gocov convert cover.out | gocov-xml > coverage.xml 

Der Faden, der mich in diese Richtung wies war hier: https://groups.google.com/forum/#!topic/golang-nuts/iUc68Zrxk_c

+5

Wie ist das die akzeptierte Antwort? Es beantwortet die Frage nicht! –

4

Sie bearbeiten das Deckprofil mit dem cover Werkzeug gehen:

öffnen Sie einen Webbrowser kommentierten Quelltext angezeigt wird:

go tool cover -html=c.out 

eine HTML-Datei schreiben, anstatt einen Web-Browser starten:

go tool cover -html=c.out -o coverage.html 

Prozentwerte der Abdeckung für jede Funktion in Standardausgabe anzeigen:

+0

Ich bin nicht '' '-html''' oder' '' -func''' als Option zu sehen ... Bin ich etwas fehlt? http://pastebin.com/d2wgQyDM –

+1

@ChristianNuss: Sie müssen das Cover-Tool verwenden. Verwenden Sie die Befehle genau so, wie sie in meiner Antwort gedruckt sind (die direkt aus 'go tool cover -help' übernommen wurde) – JimB

+0

Ahh, danke, zuerst starte test -coverprofil und starte dann die Werkzeugabdeckung für diese Ausgabedatei. Gibt es dennoch eine Möglichkeit, die Rohdatenausgabe in ein anderes Format zu konvertieren, vorzugsweise in xunit? –

10

Die Felder sind:

name.go:line.column,line.column numberOfStatements count 

Source