編寫 Go 測試時,可能會出現需要列印資訊以進行偵錯的情況。但是,僅在測試函數中呼叫 fmt.Println 不會產生可見的輸出。
預設情況下,測試中 fmt.Println 語句的輸出被抑制。若要顯示此類輸出,必須使用testing.T結構提供的.Log或.Logf方法。
類似於fmt.Print和fmt.Printf 、.Log 和.Logf 允許您列印格式化輸出。例如,不應使用:
func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") }
您應該使用:
func TestPrintSomething(t *testing.T) { t.Log("Say hi") }
即使使用.Log,輸出也可能不可見除非您在執行go test 時提供-v (詳細程度)標誌。可以使用下列語法指定此標誌:
go test -v your_test_file.go
透過新增 -v 標誌,.Log 語句的輸出將顯示在控制台上。
fmt.X 列印語句確實在測驗中運作。然而,它們的輸出通常不會顯示在預期位置,因為測試結果在列印之前由 Go 測試基礎設施進行處理。另一方面,.Log 方法專門設計用於在測試環境中顯示格式化輸出,並且可以使用詳細標誌進行控制。
以上是如何在Go測試中列印調試資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!