小编典典

如何使用“testing”包在 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

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


阅读 265

收藏
2021-11-04

共1个答案

小编典典

结构体testing.Ttesting.B两者都有一个.Logand.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

2021-11-04