我正在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
我已经用Google搜索并浏览了手册,但没有找到任何东西。
结构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.X打印语句 确实 可以在测试中使用,但是您会发现它们的输出可能不在您期望找到的屏幕上,因此,为什么要使用中的日志记录方法testing。
fmt.X
testing
如果像你的情况,你想看到对于未失败的测试日志,你必须提供go test的-v标志(v对于冗长)。有关测试标志的更多详细信息,请参见:https : //golang.org/cmd/go/#hdr- Testing_flags
go test
-v