首頁 >後端開發 >Golang >為什麼 `fmt.Println()` 在 Go 測試中不起作用,如何列印偵錯資訊?

為什麼 `fmt.Println()` 在 Go 測試中不起作用,如何列印偵錯資訊?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 19:17:10140瀏覽

Why Doesn't `fmt.Println()` Work in Go Tests, and How Can I Print Debugging Information?

使用「testing」套件在Go 測試中列印

想像一下,您正在對失敗的測試進行故障排除,並希望添加列印語句進行偵錯,但是當您執行測試時沒有顯示任何東西。這是為什麼?

在 Go 中,內建的 fmt.Println() 語句在測試中無法如預期運作。相反,“testing”包提供了印刷的替代方法。

結構體testing.T和testing.B具有.Log和.Logf方法,提供與fmt.Print和fmt.Printf類似的功能。這些方法可讓您在測試中列印語句。

範例:

func TestPrintSomething(t *testing.T) {
    t.Log("Say hi")
}

但是,即使使用這些方法,輸出也可能不會立即可見。要查看日誌訊息,您需要在執行測試時提供-v 標誌(用於詳細程度):

go test -v

使用-v 標誌,日誌訊息將與測試結果一起列印,給出您需要的調試資訊。

以上是為什麼 `fmt.Println()` 在 Go 測試中不起作用,如何列印偵錯資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn