Golang coverprofile输出格式

Chr*_*uss 17 testing cover go

在此先感谢您的帮助...

我试图理解-coverprofile cover.out选项go 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
Run Code Online (Sandbox Code Playgroud)
  1. 每个不同的列是什么意思?
  2. 输出格式是否为"标准"格式,例如gcov,xunit等,并且可转换为其他格式?

再次感谢!!

mis*_*lav 23

这些领域是:

name.go:line.column,line.column numberOfStatements count
Run Code Online (Sandbox Code Playgroud)

资源

  • @TareqSha 这是该行被覆盖的次数。如果报告是使用 -covermode=set 生成的,则值将仅为 0 和 1,因为该模式不保留计数。使用 -covermode=count 或 -covermode=atomic 您可以看到实际计数。 (3认同)
  • 从最近的一项研究中,我发现最后一个字段实际上是一个 0/​​1 标志,它表明指定的语句是否被覆盖 (2认同)

Chr*_*uss 9

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我指向这个方向的主题是:https: //groups.google.com/forum/#!topic/golang -nuts/iUc68Zrxk_c

  • 这是怎样的答案?它没有回答这个问题! (8认同)

Jim*_*imB 8

您使用go cover工具处理封面配置文件:

打开显示带注释的源代码的Web浏览器:

    go tool cover -html=c.out
Run Code Online (Sandbox Code Playgroud)

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

    go tool cover -html=c.out -o coverage.html
Run Code Online (Sandbox Code Playgroud)

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

    go tool cover -func=c.out
Run Code Online (Sandbox Code Playgroud)

  • @ChristianNuss:我不知道有任何翻译.邮件列表可能是询问是否有人写过邮件列表的最佳位置. (2认同)