Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mencetak Maklumat Nyahpepijat dalam Go Tests Menggunakan Pakej `testing`?

Bagaimana untuk Mencetak Maklumat Nyahpepijat dalam Go Tests Menggunakan Pakej `testing`?

Barbara Streisand
Lepaskan: 2024-12-06 07:03:11
asal
688 orang telah melayarinya

How to Print Debug Information in Go Tests Using the `testing` Package?

Bagaimana untuk mencetak maklumat nyahpepijat dalam ujian Go menggunakan pakej "ujian"?

Apabila menulis ujian Go, kadangkala berguna untuk cetak maklumat nyahpepijat untuk membantu memahami gelagat kod anda. Walau bagaimanapun, mencetak kepada output standard menggunakan fmt.Println() tidak berfungsi dalam ujian. Ini kerana output ujian ditimbal dan hanya dicetak jika ujian gagal.

Pakej "ujian" menyediakan dua kaedah alternatif untuk mencetak maklumat nyahpepijat:

  • t.Log()
  • t.Logf()

Kaedah ini serupa dengan fmt.Print() dan fmt.Printf(), tetapi mereka menulis outputnya terus ke log ujian. Untuk mendayakan pengelogan, anda perlu menentukan bendera -v (verbose) semasa menjalankan ujian go:

go test -v
Salin selepas log masuk

Ini akan mencetak semua mesej log ke output standard, termasuk yang daripada ujian yang berjaya.

Berikut ialah contoh cara menggunakan t.Log() dan t.Logf():

func TestPrintSomething(t *testing.T) {
    t.Log("Say hi")
    t.Logf("The value of myVar is %d", myVar)
}
Salin selepas log masuk

Apabila menjalankan ujian ini dengan -v, output berikut akan dicetak:

=== RUN   TestPrintSomething
Say hi
The value of myVar is 1234
--- PASS: TestPrintSomething (0.00s)
Salin selepas log masuk

Anda juga boleh menggunakan t.Error() untuk mencetak mesej ralat. Ini akan menyebabkan ujian gagal.

Berikut ialah contoh cara menggunakan t.Error():

func TestPrintSomething(t *testing.T) {
    if myVar != 1234 {
        t.Errorf("The value of myVar is %d, but it should be 1234", myVar)
    }
}
Salin selepas log masuk

Apabila menjalankan ujian ini dengan -v, output berikut akan dicetak:

=== RUN   TestPrintSomething
The value of myVar is 4567, but it should be 1234
--- FAIL: TestPrintSomething (0.00s)
Salin selepas log masuk

Pakej ujian juga menyediakan jenis ujian.B untuk ujian penanda aras. Jenis testing.B mempunyai kaedah Log() yang berfungsi seperti t.Log().

Berikut ialah contoh cara menggunakan B.Log():

func BenchmarkSomething(b *testing.B) {
    for i := 0; i < b.N; i++ {
        // Do something
        b.Log("The value of i is", i)
    }
}
Salin selepas log masuk

Bila menjalankan penanda aras ini dengan go test -v, output berikut akan dicetak:

=== RUN   BenchmarkSomething
The value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
...
The value of i is 1000
--- BENCH: BenchmarkSomething  1000000000000000000/s
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Maklumat Nyahpepijat dalam Go Tests Menggunakan Pakej `testing`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan