我在 Go 中运行一个测试,其中包含一个打印一些东西的语句(即用于调试测试),但它没有打印任何东西。
func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") }
当我对此文件运行 go test 时,输出如下:
ok command-line-arguments 0.004s
据我所知,真正让它打印的唯一方法是通过 t.Error() 打印它,如下所示:
func TestPrintSomethingAgain(t *testing.T) { t.Error("Say hi") }
哪个输出:
Say hi --- FAIL: TestPrintSomethingAgain (0.00 seconds) foo_test.go:35: Say hi FAIL FAIL command-line-arguments 0.003s gom: exit status 1
我用谷歌搜索并查看了手册,但没有找到任何东西。
结构testing.T和testing.B两者都有一个.Log和.Logf方法,听起来就是你要找的。.Log和.Logf分别类似于fmt.Print和fmt.Printf。
testing.T
testing.B
.Log
.Logf
fmt.Print
fmt.Printf
在此处查看更多详细信息:http: //golang.org/pkg/testing/#pkg- index
fmt.Xprint 语句 确实 在测试中工作,但您会发现它们的输出可能不在您希望找到它的屏幕上,因此,为什么应该使用testing.
fmt.X
testing
如果像您的情况一样,您想查看未失败的测试的日志,则必须提供go test标志-v(v 表示详细程度)。可以在此处找到有关测试标志的更多详细信息:https ://golang.org/cmd/go/#hdr- Testing_flags
go test
-v