自动化测试,是在预设条件下运行系统或应用程序,评估运行结果,预先条件包括正常条件和异常条件。Go本身提供了一套轻量级的测试框架,相对低级,但不过还是有效的。它依赖一个go test测试命令,和一组按照约定方式编写的测试函数,符合规则的测试代码会在运行测试时被自动识别并执行。但是这些文件是不会被普通的Go编译器编译,所以当将应用部署到生产环境时,它们不会被部署。
测试规则
文件命名与放置规则
- 测试源文件名应是
_test结尾的go文件,例如:add_test.go; - 测试代码和业务代码是分开的,但两者应该位于同一包下;
- 测试源文件所在的包应该位于
$GOPATH/src目录下; - 测试文件必须导入
"testing"包;
在Go中,凡是以
_或者.符号作为文件名的首字母时,该文件都会被构建工具忽略掉。以_test.go结尾的测试文件,将会被编译为单独的包,然后将其链接到主测试二进制文件。
go工具还会忽略名为testdata的目录,使其可以保存测试所需的辅助数据。
测试函数命名规则
测试文件包括三种函数:测试函数、基准测试函数和例子函数。测试函数用于测试程序的一些逻辑行为是否正确的函数,在命名时应该以Test为前缀,例如func TestAbcde(t *testing.T)。基准测试用于衡量一些函数的性能,是以Benchmark为函数名前缀的函数,例如func BenchmarkAbcde(b *testing.B)。例子函数用来说明函数(变量,常量等)如何使用,以Example为函数名前缀的函数,例如:
func ExamplePrintln(){
Println("The output of\nthis example.")
//Output: The output of
//this example.
}
go test命令
go test命令会自动测试导入路径命名的包并缓存测试结果,根据测试的结果和预先设定的是否匹配,会返回PASS或FAIL。它的用法

本文介绍了Go语言的自动化测试,包括测试规则、go test命令的使用、testing包的细节以及基准测试。测试文件命名以_test.go结尾,测试函数以Test开头。go test命令支持本地目录模式和包列表模式,可配合不同参数进行覆盖率分析、基准测试等。同时,文章提供了编写基准测试函数的示例。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



