一尘不染

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

go

我正在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搜索并浏览了手册,但没有找到任何东西。


阅读 253

收藏
2020-07-02

共1个答案

一尘不染

结构testing.Ttesting.B都具有.Log.Logf方法,这听起来似乎是您想要的。.Log.Logf分别类似于fmt.Printfmt.Printf

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

fmt.X打印语句 确实
可以在测试中使用,但是您会发现它们的输出可能不在您期望找到的屏幕上,因此,为什么要使用中的日志记录方法testing

如果像你的情况,你想看到对于未失败的测试日志,你必须提供go test-v标志(v对于冗长)。有关测试标志的更多详细信息,请参见:https : //golang.org/cmd/go/#hdr-
Testing_flags

2020-07-02