go test功能测试和性能测试------顺表说说为什么建议go包名和路径名尽量一致?

        祝国庆快乐!

 

       之前说过, go包名和路径名不一致必须完全一致, 的确如此。 但是, 建议一致。功能测试go test mymath查找路径就是根据包名来查找的。

        先来看看功能测试,add.go内容为:

package mymath

func Add(x, y int) int {
	return x + y
}

         add_test.go内容为:

package mymath
import "testing"

func TestX(t *testing.T){
	i := Add(4, 6)
	if i != 10 {
		t.Error("failed")
	}
}

        结果:

xxx$ go test mymath
ok      mymath  (cached)
xxx$ 

       

        再来看看性能测试:

        add.go中增加sleep操作:

package mymath
import "time"

func Add(x, y int) int {
	time.Sleep(time.Second)
	return x + y
}

        再看add_test.go的内容:

package mymath
import "testing"

func BenchMarkY(b *testing.B){
	for i := 0; i < b.N; i++ {
		Add(1, 2)
	}
}

         来测一下(在本例中, 执行如下命令时,GOPATH没啥作用,想想为什么):

xxx$ go test -test.bench add.go
PASS
ok      xxxxxx/learngo/src/mymath 1.006s
xxx$ 

         符合预期。

 

        注意:

        1.  测试文件命名必须用xxx_test.go的形式

        2.  功能测试函数必须用TestX的形式, X要大写

        3.  性能测试函数必须是BenchMarkY的形式, Y要大写

 

        OK, 不多说。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值