-
命令 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)
}