面试题答案
一键面试- 计算代码覆盖率步骤:
- 编写测试文件:为需要计算覆盖率的代码编写对应的测试文件,测试文件命名通常以
_test.go
结尾。例如,对于main.go
文件,创建main_test.go
。假设main.go
中有一个函数Add
:
- 编写测试文件:为需要计算覆盖率的代码编写对应的测试文件,测试文件命名通常以
// main.go
package main
func Add(a, b int) int {
return a + b
}
对应的main_test.go
:
// main_test.go
package main
import "testing"
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Add(2, 3) = %d; want 5", result)
}
}
- 执行测试并生成覆盖率文件:在项目根目录下,使用以下命令生成覆盖率文件
coverage.out
:
go test -coverprofile=coverage.out
- 查看覆盖率报告:
- 文本形式查看:可以使用
go tool cover
命令以文本形式查看覆盖率报告:
- 文本形式查看:可以使用
go tool cover -func=coverage.out
执行上述命令后,会输出类似如下内容:
main.go:4: Add 100.0%
total: (statements) 100.0%
- HTML形式查看:也可以生成HTML格式的覆盖率报告,便于直观查看代码中哪些部分被测试覆盖,哪些没有。使用以下命令:
go tool cover -html=coverage.out
执行该命令后,会自动在浏览器中打开一个HTML页面,页面会以不同颜色标识出代码的覆盖情况,绿色表示被覆盖的代码行,红色表示未被覆盖的代码行。