-
命令 go test 或 go test -v
-
文件名必须以_test.go的格式命名
-
使用t.Run来执行可实现顺序执行
-
testing.m 初始化test,如果有testing.m则其他方法都不会执行,必须使用m.Run才会执行其他方法
-
benchMark 性能测试,命令:go test -bench=.
b.N会不断的调整
代码示例:
package main
import (
"fmt"
"testing" ) func TestMain(m *testing.M) { fmt.Println("初始化") m.Run() } func TestAll(t *testing.T) { t.Run("TestEchoHello1", testEchoHello1) t.Run("TestEchoHello3", testEchoHello3) t.Run("TestEchoHello2", testEchoHello2) } func testEchoHello1(t *testing.T) { fmt.Println("TestEchoHello1") EchoHello() } func testEchoHello2(t *testing.T) { fmt.Println("TestEchoHello2") EchoHello() } func testEchoHello3(t *testing.T) { fmt.Println("TestEchoHello3") EchoHello() } func BenchmarkEchoHello(b *testing.B) { for i:=0;i<b.N ;i++ { EchoHello() } } //查看b.N的变化 func BenchmarkEchoHello1(b *testing.B) { count := 0 for i:=0;i<b.N ;i++ { if i==0 { fmt.Println(b.N) } count ++ } fmt.Println("count:",count) }