go测试

go测试

go testing

  1. -bench regexp 执行响应的benchmarks,例如-bench=
  2. -cover 开启测试覆盖率
  3. -run regexp 只运行regexp匹配的函数 例如 -run=Array
  4. -v 显示测试详细指令
  5. 压测
import "testing"

// 必须以Benchmark开头,使用testing.B
func Benchmark_Add(b *testing.B){
    var n int;
    for i:=0;i<b.N;i++ {
        n++
    }
}
  1. go test -v -bench=. -benchtime=5s xx.go 默认1s
  2. 测试内存,在代码中添加b.ReportAllocs() go test 增加参数 -benchmem
func Benchmark_SyncPool(b testing.B){
    // 关闭gc,防止gc影响测试结果
    defer debug.SetGCPercent(debug.SetGCPercent(-1))
    b.ResetTimer()
    b.RunParallel(func(pb *testing.PB){
        for pb.Next(){
            v := _p.GET().(*message.Info)
            _p.Put(v)
        }
    })
}

并行测试

  1. B.SetParallelism 设置并行数 P的数量

mock测试框架

  1. 自带测试包不能满足测试需求,例如调用外部接口等
  2. 常用mock包
    • Testify/mock
    • Monkey
    • go mock
  3. BDD测试框架s
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文变更日志: 2021-09-09 更新,基于 Go 1.16.7 更新改动点:完善了表组测试的说明修改了基准测...
    Kerwong阅读 636评论 0 0
  • 在日常开发中,基准测试是必不可少的,基准测试主要是通过测试CPU和内存的效率问题,来评估被测试代码的性能,进而找到...
    JankinHou阅读 1,452评论 0 1
  • Go 语言中自带了测试框架,在不引入外部包的情况下,也可以编写完整的测试。这篇文章来看一下Go 提供原生测试能力,...
    rayjun阅读 2,489评论 0 5
  • 不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是...
    羋学僧阅读 156评论 0 0
  • Go test 的测试用例形式 测试用例有四种形式: TestXxxx(t *testing.T) // 基本测试...
    莫介怀dut阅读 12,269评论 0 3

友情链接更多精彩内容