go中testing包中的数据类型M/T/B/PB

2024-03-17  本文已影响0人  五岁小孩

简介

testing.M 对main方法进行的测试
testing.T 对函数/方法进行单元测试
testing. B 对性能进行的测试
testing.PB -

执行测试

命令 作用
go test 【包名】或 go test . 运行当前package内的所有用例
go test ./... 或 go test 【目录名】/... 递归执行当前目录下所有用例:
go test -v [单元测试文件]. // 如 go test -v foo_test.go 运行指定文件单元测试
go test -v [单元测试文件] -run [单元测试函数]. 运行指定单元测试用例://如 go test -v foo_test.go -run TestFoo
go test -bench . 压测

执行单元测试时出现 调用函数 undefined 的解决方法:

如 执行 xj_test.go 下的TestXj函数,调用xj.go文件下的Xj函数

go test -v xj_test.go -run TestXj ———> 会出现Xj函数undefined

更换,加上调用函数的文件:

go test -v xj_test.go xj.go -run TestXj

testing.M

[Go]Go单元测试的前置和后置调用--TestMain - 掘金 (juejin.cn)

  setup()  // 运行前
    code := m.Run()  //运行运行测试。 它返回一个退出代码以传递给 os.Exit。
    teardown()  // 运行后
    os.Exit(code) //退出码

testing.T

对函数/方法进行单元测试

testing.B

type BenchmarkResult struct {
    N         int           // 迭代次数
    T         time.Duration // 基准测试花费的时间
    Bytes     int64         // 一次迭代处理的字节数
    MemAllocs uint64        // 总的分配内存的次数
    MemBytes  uint64        // 总的分配内存的字节数
}

testing.PB

其他

-test.short

go test -v ./... -test.short

代码中可以使用if testing.Short() {} 语句,能够检测go test命令行中有无-test.short,然后执行自己的业务代码(推荐是用来缩减单元测试的代码块)

参考资料

微信公众平台 (qq.com)

上一篇 下一篇

猜你喜欢

热点阅读