关于go test
1.所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们只是go test测试的一部分。
2.在*_test.go文件中,有4种类型的函数:测试函数、基准测试(benchmark)函数、模糊测试函数、示例函数。
3.Windows下-run regexp -bench regexp 的正则表达式都需要用引号或者单引号括起来,不然不识别
4.可以通过t.Log t.Logf,t.Error,t.Errorf,Fatal,Fatalf,(包括b.....)实现测试过程中的日志显示需要
5.可以通过t.FailNow()立即已失败结束当前的测试,Fail()方法则还会继续执行后续的东西
TestMethod:测试函数
func TestA(t *testing.T) {
t.Log("A")
}
BechmarkMethod:基准测试函数,如果不用go test -bench="正则表达式"指定,不会自动执行
package code
import "testing"
func Benchmark_Add(b *testing.B) {
var n int
for i := 0; i < b.N; i++ {
n++
}
}
func Benchmark_Add_TimerControl(b *testing.B) {
// 重置计时器
b.ResetTimer()
// 停止计时器
b.StopTimer()
// 开始计时器
b.StartTimer()
var n int
for i := 0; i < b.N; i++ {
n++
}
}
go test -v //表示需要显示细节
-run="." xx_test.go //测试xx_test.go里面的所有Test方法,但不包括的benchmark
-bench="." xx_test.go //测试xx_test.go里面的所有Benchmark方法,有-v Test方法也会有.