我有一个由几个软件包组成的库。运行测试时,我使用'-cover'标志,它会分别显示每个软件包的覆盖率信息。就像下面这样:
--- PASS: TestSampleTestSuite (0.00s)
PASS
coverage: 28.7% of statements
ok github.com/path/to/package1 13.021s
? github.com/path/to/package2 [no test files]
=== RUN TestAbc
--- PASS: TestAbc (0.43s)
PASS
coverage: 27.7% of statements
有没有简单快捷的方法可以获取整个项目的完整覆盖率概述,以便更好地了解整个项目的覆盖范围?
更新:这是我正在使用的go test命令
go test ./... -v -short -p 1 -cover
total: (statements) 99.3%
,这不是你想要的吗,@Rana? - HectorJecho "mode: count" > profile.cov
。 - nboon-not -path './vendor/*'
来忽略供应商包。 - danielcooperxyzgo tool cover -func profile.cov
准确计算总覆盖率。就其价值而言,go test -coverprofile=profile.cov ./...
在功能上等同于此脚本的大部分,也受到相同的不准确性影响。 - Alex Jansen