如何在Go GAE应用程序中可视化代码覆盖率信息?

Ing*_*ngo 3 tdd google-app-engine unit-testing code-coverage go

我正在使用最新的 Go GAE SDK开发服务器.每次更改后我都会运行测试:

goapp test -test.v=true
Run Code Online (Sandbox Code Playgroud)

-cover用来记录覆盖范围,如下所述goapp help testflag:

goapp test -cover -test.v=true -test.coverprofile=c.out
[..]
coverage: 53.8% of statements
ok      _/var/lib/jenkins/jobs/loyalty/workspace    30.464s
Run Code Online (Sandbox Code Playgroud)

这成功完成并打印测试所涵盖的行的百分比.但是,尝试可视化结果失败:

goapp tool cover -html=c.out
cover: can't find "app.go": cannot find package "_/home/ingo/git/loyalty/" in any of:
/home/ingo/Downloads/go_appengine_sdk_linux_amd64-1.9.10/go_appengine/goroot/src/pkg/_/home/ingo/git/loyalty (from $GOROOT)
/home/ingo/git/loyalty/src/_/home/ingo/git/loyalty (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)

Go的封面工具是否仅适用于非GAE应用程序?我是否必须以不同方式打包我的应用程序才能显示覆盖率结果?

我以前在golang-nuts上问过这个问题是不成功的.

Ing*_*ngo 5

有一个与之相关的未决问题.作为临时解决方法,我在收集和可视化覆盖结果之间运行sed.

goapp test -cover -test.v=true -test.coverprofile=c.out
sed -i -e "s#.*/\(.*\.go\)#\./\\1#" c.out
goapp tool cover -html c.out -o coverage.html
Run Code Online (Sandbox Code Playgroud)