如何使用“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.T
和testing.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标志的情况下才会打印文本。