英文:
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 )
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论