2 minutes reading time
今天来讲一讲如何统计 go 代码的测试覆盖率,主要是 cover 命令。
1 先简单写个函数和相应的测试,代码如下:
func Max(a, b int) int
这个函数就是简单的比较大小,如果 a > b,返回 a,否则返回 b。
测试代码如下
package main
import "testing"
func TestMax(t *testing.T)
2 go test -cover 能够统计出代码测试的覆盖率,这是一种比统计函数是否被调用更强悍的手法。我们执行这个命令。输出如下:
PASS
coverage: 100.0% of statements
ok blog-test 0.265s
可以看到我们的测试覆盖率为 100%。
我们还可以对测试覆盖率进行可视化展示。通过以下命令:
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
可以识别和统计出未被测试覆盖的代码。
本文主要讲解 go 如何统计代码测试覆盖率。除了通过命令行的方式,各个 IDE 都有相应的工具统计代码测试覆盖率。
在 GitHub 上, 有的开源项目使用了 Codecov 等工具结合 CI 来统计代码覆盖率。