Golang cover配置文件输出格式

bqucvtff  于 2022-12-07  发布在  Go
关注(0)|答案(3)|浏览(166)

我试图理解go test中的-coverprofile cover.out选项,特别是文件的格式。
例如,覆盖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.每个不同的列表示什么?
1.输出的格式是否为“标准”格式,例如gcov、xunit等,并且是否可转换为其他格式?

kqqjbcuj

kqqjbcuj1#

这些字段包括:

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

来源

deyfvvtc

deyfvvtc2#

golang-nuts社区(https://groups.google.com/forum/#!forum/golang-nuts)提供了一些有用的工具,可以将Go语言的覆盖率转换成更有用的格式。
JUnit格式(用于汇总测试执行):

# Prerequisites
go install github.com/jstemmer/go-junit-report/v2@latest
# Tests
go test -v 2>&1 ./... | go-junit-report -set-exit-code > 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

flvlnr44

flvlnr443#

您可以使用go cover工具来行程护套轮廓:
打开显示带注解的源代码的Web浏览器:

go tool cover -html=c.out

写出HTML文件而不是启动Web浏览器:

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

将每个函数的覆盖率百分比显示到stdout:

go tool cover -func=c.out

相关问题