11.1. go test

go test 是一个按照一定的约定和组织的测试代码的驱动程序. 在包目录内, 以 _test.go 为后缀名的源文件并不是go build构建包的以部分, 它们是 go test 测试的一部分.

*_test.go 文件中, 有三种类型的函数: 测试函数, 基准测试函数, 例子函数. 一个测试函数是以 Test 为函数名前缀的函数, 用于测试程序的一些逻辑行为是否正确; go test 会调用这些测试函数并报告测试结果是 PASS 或 FAIL. 基准测试函数是以Benchmark为函数名前缀的函数, 用于衡量一些函数的性能; go test 会多次运行基准函数以计算一个平均的执行时间. 例子函数是以Example为函数名前缀的函数, 提供一个由机器检测正确性的例子文档. 我们将在 11.2 节 讨论测试函数的细节, 在 11.4 节讨论基准测试函数的细节, 在 11.6 讨论例子函数的细节.

go test 命令会遍历所有的 *_test.go 文件中上述函数, 然后生成一个临时的main包调用相应的测试函数, 然后构建并运行, 报告测试结果, 最后清理临时文件.