Как я могу использовать "testing.Benchmark" в функции Benchmark - PullRequest
0 голосов
/ 05 августа 2020

мой тестовый файл

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!

, если я использую «основной пакет» и "fun c main {}", программа может успешно работать.

что мне делать дальше? (прости мой бедный ингли sh)

1 Ответ

0 голосов
/ 05 августа 2020

Я думаю, что есть метод, который не особенно хорош

func TestA(t *testing.T) {
    res := testing.Benchmark(BenchB)
    if res.N <= 25{
        t.Fatalf("fail!")
    }

тест -> unit test

...