这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天. go test命令是一个按照一定的约定和组织来测试代码的程序.在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分.
在_test.go文件中,有三种类型的函数:测试函数,基准测试(benchmark)函数,示例函数。一个测试函数是以Test为函数名前缀的函数,用于测试程序的一些逻辑行为是否正确:go test命令会调用这些测试函数并报告测试结果是PASS或FAIL.基准测试函数是以Benchmark为函数名前缀的函数,它们用于衡量一些函数的性能:go test命令会多次运行基准测试函数以计算一个平均的执行时间.示例函数是以Example为函数名前缀的函数,提供一个由编译器保证正确性的示例文档。
go test命令会遍历所有的_test.go文件中符合上述命名规则的函数,生成一个临时的main包用于调用相应的测试函数,接着构建并运行,报告测试结果,最后清理测试中生成的临时文件.
如果存在多个测试函数,我们可以使用go test -run 函数名来运行我们想要的测试函数
我们还可以使用go test -run 函数名 -v来打印每一个测试结果
func add(a int, b int) int {
return a + b
}
func TestADD(t *testing.T) {
if add(1, 2) != 3 {
t.Error("1+2 !=3 ")
}
}
如果要进行性能测试,那我们可以使用go test -bench="."
如果要实行覆盖率测试,那我们可以使用go test -cover
如果要实行覆盖率测试,那我们可以使用go test -v
Go语言提供了许多测试方案,在之后的实践中多加使用,可以较好地检测代码地质量