为什么Go测试总是通过?

huangapple go评论79阅读模式
英文:

Go Test always passses why?

问题

我安装了Go并在如何编写Go代码的第一部分上尝试了一下。

但是经过一段时间没有看到期望的结果后,我注意到go test总是通过的,总是通过!

我错过了什么吗?

$ go version
go version go1
$ mkdir -p src/example/math 

$ cat >src/example/math/sum_test.go <<.
> package math
>
> import "testing"
>
> func SumTest( t *testing.T ) {
>    t.Errorf("ssss %d", 1 )
> }
> .

$ go test example/math
ok      example/math    0.044s

我正在使用Windows x64,并且我正在使用git-bash作为shell。

英文:

I installed go and tried the first part on How to write go code

And after a while of not seeing the desired result I notice go test always passes, always!

What am I missing?

$ go version
go version go1
$ mkdir -p src/example/math 

$ cat >src/example/math/sum_test.go <<.
> package math
>
> import "testing"
>
> func SumTest( t *testing.T ) {
>    t.Errorf("ssss %d", 1 )
> }
> .

$ go test example/math
ok      example/math    0.044s

I'm using windows x64 and I'm using git-bash as shell

答案1

得分: 9

go命令手册页面

一个测试函数的命名应为TestXXX(其中XXX是任何以小写字母开头的字母数字字符串),并且应具有以下签名:

func TestXXX(t *testing.T) { ... }

你的SumTest()函数不符合这个模式,很可能会被忽略。
这样应该更好:

func TestSum( t *testing.T )
英文:

From the go command man page:

A test function is one named TestXXX (where XXX is any alphanumeric string not starting with a lower case letter) and should have the signature,

func TestXXX(t *testing.T) { ... }

Your SumTest() function doesn't follow that pattern, and is likely to be ignored.
This should work better:

func TestSum( t *testing.T )

huangapple
  • 本文由 发表于 2012年8月23日 11:50:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/12084487.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定