go test 用法总结
使用操作
-
在当前目录下使用 go test 会运行当前目录下所有的 test 文件。
-
test 文件命名 xxx_test.go
-
test 文件里需要运行的方法命名 TestXxx(t *testing.T/b *testing.B) // 测试性能的时候用 b
-
若要跳过当前 test 文件中的某个方法,使用 t.SkipNow()
-
go test 不会按照顺序执行多个 test case。若想要顺序执行,需要用到 subtests 。用 t.Run 来执行 subtests 可以做到控制顺序的作用。
-
TestMain 作为初始化 test。
func TestMain(m *testing.M) { fmt.Println("test main first") m.Run() }
作为入口 test。可以在 m.Run() 之前初始化一些东西,比如数据库连接、文件打开。。。
Test 之 Benchmark
- benchmark 函数一般以 Benchmark 开头
- benchmark 的 case 一般会跑 b.N 次,而且每次执行都会如此
- 在执行过程中会根据实际 case 的执行时间是否稳定会增加 b.N 的次数以达到稳态
- 执行命令 go test -bench=.
- 输入该命令后,go test 只会测试 Benchmark 开头的函数