如何使用“testing”包在Gotesting中进行打印?

我正在Go中运行一个testing,用于打印某些东西(即用于testing的debugging),但它不打印任何东西。

func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") } 

当我跑这个文件去testing,这是输出:

 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 

我谷歌search,看看手册,但没有发现任何东西。

结构testing.Ttesting.B都有一个.Log.Logf方法,这听起来就是你正在寻找的。 .Log.Logf分别与.Log.Logf类似。

在这里查看更多细节: http : //golang.org/pkg/testing/#pkg-index

fmt.X打印语句可以在testing内部工作,但是你会发现他们的输出可能不在屏幕上,你可能会发现它,因此,为什么你应该在testing使用日志logging方法。

如果像你的情况那样,你想查看没有失败的testing日志,你可以提供go test -v标志(v为详细)。 关于testing标志的更多细节可以在这里find: http : //golang.org/cmd/go/#hdr-Description_of_testing_flags

例如,

 package verbose import ( "fmt" "testing" ) func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") t.Log("Say bye") } 

 go test -v === RUN TestPrintSomething Say hi --- PASS: TestPrintSomething (0.00 seconds) v_test.go:10: Say bye PASS ok so/v 0.002s 

命令去

testing标志的描述

 -v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds. 

包testing

func(* T)日志

 func (c *T) Log(args ...interface{}) 

日志使用默认格式设置参数的格式,类似于Println,并将文本logging在错误日志中。 只有在testing失败或设置了-test.v标志的情况下才会打印文本。