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

3

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

goapp test -test.v=true

我正在使用-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

这个操作成功完成并打印出测试覆盖率的百分比。然而,试图可视化结果失败
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)

Go的覆盖工具只能在非GAE应用程序上工作吗?我是否需要以不同方式打包我的应用程序才能可视化覆盖范围结果?

我之前曾在golang-nuts上提出过这个问题,但没有成功。

1个回答

5

这与IT技术有关,存在一个相关的未解决问题。作为临时解决方案,在收集和可视化覆盖率结果之间我正在运行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

非常不错的技巧!谢谢;) - Blue Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接