小编典典

如何使用“testing”包在 Go 测试中打印?

all

我在 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

我用谷歌搜索并查看了手册,但没有找到任何东西。


阅读 111

收藏
2022-06-16

共1个答案

小编典典

结构testing.Ttesting.B两者都有一个.Log.Logf方法,听起来就是你要找的。.Log.Logf分别类似于fmt.Printfmt.Printf

在此处查看更多详细信息:http: //golang.org/pkg/testing/#pkg-
index

fmt.Xprint 语句 确实 在测试中工作,但您会发现它们的输出可能不在您希望找到它的屏幕上,因此,为什么应该使用testing.

如果像您的情况一样,您想查看未失败的测试的日志,则必须提供go test标志-v(v
表示详细程度)。可以在此处找到有关测试标志的更多详细信息:https ://golang.org/cmd/go/#hdr-
Testing_flags

2022-06-16