go测试

作者: mafa1993 | 来源:发表于2023-03-22 10:18 被阅读0次

    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

    相关文章

      网友评论

          本文标题:go测试

          本文链接:https://www.haomeiwen.com/subject/rhivrdtx.html