我在 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两者都有一个.Logand.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