web-dev-qa-db-ja.com

Golangカバープロファイル出力フォーマット

助けてくれてありがとう...

-coverprofile cover.outgo testオプション、具体的にはファイルの形式を理解しようとしています。

たとえば、server.goをカバーすると、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. 異なる列のそれぞれはどういう意味ですか?
  2. 「標準」形式の出力の形式です。例: gcov、xunitなどで別の形式に変換できますか?

再度、感謝します!!

19
Christian Nuss

Golang-nutsコミュニティ( https://groups.google.com/forum/#!forum/golang-nuts )は、Goカバレッジをより便利な形式に変換するための便利なツールをいくつか提供しました。

JUnit形式(テスト実行を要約するため):

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

Cobertura形式(コードカバレッジの詳細用):

# 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

私をこの方向に向けたスレッドはここにありました: https://groups.google.com/forum/#!topic/golang-nuts/iUc68Zrxk_c

9
Christian Nuss

フィールドは次のとおりです。

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

ソース

22
mislav

Go coverツールを使用してカバープロファイルを処理します。

注釈付きのソースコードを表示しているWebブラウザを開きます。

    go tool cover -html=c.out

Webブラウザーを起動する代わりに、HTMLファイルを書き出します。

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

各関数のstdoutに対するカバレッジパーセンテージを表示します。

    go tool cover -func=c.out
8
JimB