Shr*_*ash 4 integration-testing code-coverage go go-testing
我需要计算 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
Run Code Online (Sandbox Code Playgroud)
go tool cover
与标志一起使用-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%
Run Code Online (Sandbox Code Playgroud)
% go tool cover -func cover.out | fgrep total:
total: (statements) 53.3%
Run Code Online (Sandbox Code Playgroud)
% go tool cover -func cover.out | fgrep total | awk '{print $3}'
100.0%
Run Code Online (Sandbox Code Playgroud)
% go tool cover -func cover.out | fgrep total | awk '{print substr($3, 1, length($3)-1)}'
100.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2559 次 |
最近记录: |