我在 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
我用谷歌搜索并查看了手册,但没有找到任何东西。
原文由 platwp 发布,翻译遵循 CC BY-SA 4.0 许可协议
The structs
testing.T
andtesting.B
both have a.Log
and.Logf
method that sound to be what you are looking for..Log
和.Logf
类似于fmt.Print
和fmt.Printf
在此处查看更多详细信息:http: //golang.org/pkg/testing/#pkg-index
fmt.X
打印语句在测试 中 起作用,但你会发现它们的输出可能不在你期望找到它的屏幕上,因此,为什么你应该使用testing
.如果像您的情况一样,您想查看未失败的测试日志,则必须提供
go test
-v
标志(v 表示冗长)。可以在此处找到有关测试标志的更多详细信息: https ://golang.org/cmd/go/#hdr-Testing_flags