goland实践随笔--go test

作用

可以 进行 单元测试测试业务逻辑,也可以做基准测试,分析性能

使用

可以通过以下命令来查看帮助文档:

go help test

从帮助文档中可以得到的信息:

  1. 测试文件命名规则 : xxx_test.go
  2. go test 有两种模式: 本地目录模式。包列表模式

本地目录模式:

cd 到需要执行的 xxx_test.go文件目录
$ go test 
......
ok  	whgo/analytics/eventanalysis/config	0.857s

按照当前路径 寻找test 文件 并且自动导入test 文件 需要的包,执行所有Test函数

这个模式下 不会有缓存

包列表模式:

$ go test math
ok  	math	3.659s

如果只给包名,默认按照 GOROOT 去寻找这个包,如果找不到会报错

$ go test ./analytics/eventanalysis/config
ok  	whgo/analytics/eventanalysis/config	(cached)

给一个相对路径 ,会执行目录下的 xxx_test.go 文件 里的 所有 Test 函数

包列表模式,会缓存测试通过的结果,以上就是 命中缓存的输出

如果需要不走缓存, 可以加上 -v 参数
$ go test -v ./analytics/eventanalysis/config

问题

  1. 怎么执行单文件
go test xxx_test.go

可能会出现的问题:

$ go test config_test.go
# command-line-arguments [command-line-arguments.test]
analytics/eventanalysis/config/config_test.go:26:30: undefined: conf
FAIL	command-line-arguments [build failed]

导致上面的原因是: xxx_test.go 引入其他不在 GOROOT下的包,所以 go test 找不到对应的引用。 需要 先编译

$ go test -run config_test.go
......
PASS
ok  	whgo/analytics/eventanalysis/config	0.881s
  1. 怎么执行 单个文件单个函数
cd 到 要执行的 xxx_test.go 目录下
go test -run Test_GetEventAnalysisConfig
......
PASS
ok  	whgo/analytics/eventanalysis/config	1.018s

会默认 从 当前的 xxx_test.go 中执行 Test_GetEventAnalysisConfig 

  1. 测试函数格式规范:

通过 go help testfunc 查看帮助文档

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

你可能感兴趣的:(golang,开发语言,后端)