编写 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中文网其他相关文章!