Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencetak Maklumat Nyahpepijat dalam Go Tests Menggunakan Pakej `testing`?
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:
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
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) }
Apabila menjalankan ujian ini dengan -v, output berikut akan dicetak:
=== RUN TestPrintSomething Say hi The value of myVar is 1234 --- PASS: TestPrintSomething (0.00s)
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) } }
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)
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) } }
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
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!