在 go 中,测试和覆盖率对于维护稳定和可靠的代码至关重要。测试通过编写以 test 开头的函数进行,其中包含断言来验证函数的预期输出。运行测试时使用 go test 命令,而测量覆盖率可以使用 go test -coverprofile=coverage.out 命令生成覆盖率配置文件。要查看覆盖率报告,请使用 go tool cover -html=coverage.out 命令,该命令将在浏览器中显示哪些代码行未被执行。
Go 函数的测试与覆盖率
在 Go 中,测试和覆盖率对于维护稳定和可靠的代码至关重要。本教程将指导你逐步设置和运行 Go 函数的测试。
设置测试
首先,创建一个以 _test.go
结尾的文件,并将其放置在要测试的函数所在的目录中。
下一步,编写一个测试函数,该函数的名称以 Test
开头,后跟要测试的函数的名称。测试函数需要包含多个断言,以验证函数的预期输出。
package mypackage
import (
"testing"
)
func TestAdd(t *testing.T) {
expected := 10
result := Add(5, 5)
if result != expected {
t.Errorf("Expected %d, got %d", expected, result)
}
}
运行测试
使用 go test
命令运行测试:
go test
测量覆盖率
覆盖率衡量代码中执行的代码行数量。要测量覆盖率,可以使用 -cover
标志:
go test -coverprofile=coverage.out
此命令将生成一个覆盖率配置文件,名为 coverage.out
。
查看覆盖率报告
可以使用 go tool cover
命令查看覆盖率报告:
go tool cover -html=coverage.out
这将在默认浏览器中打开一个覆盖率报告,显示哪些代码行未被执行。
实战案例
考虑一个计算数组中元素和的函数:
package mypackage
func SumArray(arr []int) int {
sum := 0
for _, v := range arr {
sum += v
}
return sum
}
测试案例
func TestSumArray(t *testing.T) {
arr := []int{1, 2, 3, 4, 5}
expected := 15
result := SumArray(arr)
if result != expected {
t.Errorf("Expected %d, got %d", expected, result)
}
}
运行测试和查看覆盖率
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
这将生成一个覆盖率报告,其中显示 SumArray
函数中所有代码行均已执行。
以上就是golang函数的测试与覆盖率如何进行?的详细内容,更多请关注编程网其它相关文章!