登录
首页 >  Golang >  Go问答

测试覆盖率计算方法详解

来源:stackoverflow

时间:2024-02-16 17:57:16 101浏览 收藏

本篇文章给大家分享《测试覆盖率计算方法详解》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我需要计算 golang 项目的代码覆盖率,其中测试源将是用 Java 语言编写的集成测试。这需要首先对 go build 进行检测,然后在服务器上运行,以便测试可以运行,并且在测试结束后我们才能知道代码覆盖率是多少?我在互联网上没有找到任何关于此的参考,所有存在的都是单元测试,可以轻松运行并用于计算覆盖率


正确答案


首先使用 -coverprofile 标志生成覆盖率配置文件,并告诉命令在何处存储信息。

%  go test ./... -coverprofile cover.out              
?       some.project/somepkg            [no test files]
ok      some.project/somepkg/service    0.329s  coverage: 53.3% of statements

然后使用 go 工具覆盖带有 -func 标志的 并将其指向先前生成的文件。这将向您显示项目中每个包的代码覆盖率,并在底部显示总覆盖率。

%  go tool cover -func cover.out         

some.project/somepkg/service/.go:27:          funca        100.0%
some.project/somepkg/service/service.go:33:   funcb        100.0%
some.project/somepkg/service/service.go:51:   funcc        0.0%
total:                                        (statements) 53.3%
%  go tool cover -func cover.out | fgrep total:
total:                                        (statements) 53.3%
%  go tool cover -func cover.out | fgrep total | awk '{print $3}'
100.0%
%  go tool cover -func cover.out | fgrep total | awk '{print substr($3, 1, length($3)-1)}'
100.0

好了,本文到此结束,带大家了解了《测试覆盖率计算方法详解》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>