2015-07-14 7 views
9

Grazie in anticipo per l'aiuto ...formato di output coverprofile Golang

che sto cercando di dare un senso dell'opzione -coverprofile cover.out in go test, in particolare il formato del file.

Coprire server.go per esempio, cede l'output 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. Cosa ciascuna delle varie colonne significa?
  2. È il formato dell'output in un formato "standard", ad es. gcov, xunit, ecc. e convertibile in un altro formato?

Grazie ancora !!

risposta

5

La comunità golang-nuts (https://groups.google.com/forum/#!forum/golang-nuts) ha fornito un paio di utili strumenti per convertire la copertura di Go in formati più utili.

JUnit Format (per riassumere le esecuzioni di prova):

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

Cobertura Format (per dettagliare la copertura del codice):

# 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 

Il filo che mi ha segnalato in questa direzione era qui: https://groups.google.com/forum/#!topic/golang-nuts/iUc68Zrxk_c

+5

Come è questa la risposta accettata? Non risponde alla domanda! –

4

si elabora il profilo di copertura utilizzando il via cover strumento:

Aprire un browser web che visualizza il codice sorgente annotato:

go tool cover -html=c.out 

scrivere un file HTML invece di lanciare un browser web:

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

Percentuali di copertura dello schermo su stdout per ciascuna funzione:

go tool cover -func=c.out 
+0

io non sto vedendo '' '-html''' o' '' -func''' come optional ... Mi sto perdendo qualcosa? http://pastebin.com/d2wgQyDM –

+1

@ChristianNuss: è necessario utilizzare lo strumento di copertura. Usa i comandi esattamente come sono stampati nella mia risposta (che è presa direttamente da 'go tool cover -help') – JimB

+0

Ahh, grazie, prima esegui go test -coverprofile, quindi esegui go tool cover su quel file di output. Ancora, c'è un modo per convertire il file di output della copertina grezza in un altro formato, preferibilmente xunit? –

10

I campi sono:

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

Source

Problemi correlati