如何在基准函数中使用“testing.Benchmark”

我的测试文件


func BenchmarkA(b *testing.B) {

    res := testing.Benchmark(BenchB)

    if res.N <= 25{

        b.Fatalf("fail!")

    }

func BenchB(b *testing.B) {

for i := 0; i <= b.N; i++{

        url := "****"

        contentType := "application/x-www-form-urlencoded"

        data := strings.NewReader("****")

        _, err := http.Post(url, contentType, data)

        if err != nil {

            b.Fatal("fail ")

        }

    }

}

当我跑步时


go test -bench=./router_test.go

我得到一个


fatal error: all goroutines are asleep - deadlock!

如果我使用“package main”和“func main{}”,程序可以成功运行。


接下来我该怎么做?(原谅我糟糕的英语)


九州编程
浏览 109回答 1
1回答

紫衣仙女

我觉得有一种方法不是特别好func TestA(t *testing.T) {&nbsp; &nbsp; res := testing.Benchmark(BenchB)&nbsp; &nbsp; if res.N <= 25{&nbsp; &nbsp; &nbsp; &nbsp; t.Fatalf("fail!")&nbsp; &nbsp; }基准测试->单元测试
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go