golang编程总结(七)单元测试
测试类型
1.功能测试,以Test开头,带有testing.T类型的唯一参数
2.性能测试,以Benchmark开头,带有testing.B类型的唯一参数
3.示例测试,以Example为前缀,对参数列表没有强制规定
功能测试
1.命令:go test 包路径(没有开启go mod,项目在gopath下)
性能测试
$ go test -bench=. -run=^$ puzzlers/article20/q3
goos: darwin
goarch: amd64
pkg: puzzlers/article20/q3
BenchmarkGetPrimes-8 500000 2314 ns/op
PASS
ok puzzlers/article20/q3 1.192s
第一行表示运行这个包下面的全部性能测试,不运行功能测试,用正则匹配需要运行的测试函数
第五行表示这个测试函数用了8个逻辑cpu,最后一次测试时的运行次数为50w,平均耗时为2314ns
-cpu,-parallel选项的用法
-cpu:表示性能测试时最多有几个goroutine运行
-parallel:表示功能测试时最多并发执行的测试函数的数目,配合t.parallel