Go语言依赖管理与单元测试

64 阅读1分钟

依赖管理

依赖管理三要素:

1.配置文件,描述依赖 go.mod

2.中心仓库管理依赖库 Proxy

3.本地工具 go get/mod

依赖配置-go.mod

image.png

1.模块路径 -- 依赖管理基本单元

2.原生库 -- Go版本号

3.单元依赖。单元依赖的依赖标识为:[Module Path][Version/Pseudo-version]。其中version有语义化版本和基于commit伪版本。

闲话:当一个项目依赖于多个子项目,而子项目依赖孙项目时,则这个项目的版本号应该为孙项目的最大版本号,即最低兼容版本。(前提是孙项目的高版本号兼容低版本号)例如A项目依赖于2个子项目C,D,C,D分别依赖于C项目的v1.3,v1.4版本,则这个项目的版本号应该为v1.4。

依赖分发 - 变量 GOPROXY

GOPROXY = "proxy1.cn, proxy2.cn, direct" . 服务站点URL列表,"direct"表示原站。

依赖会优先从proxy1查找,再向proxy2查找,找不到会回源到中心源站direct查找。

go mod 工具命令

go mod 包含三个模块命令:

1.init 初始化项目依赖,并创建go.mod文件。

2.download 下载模块到本地缓存。

3.tidy 增加环境所需要的依赖到go.mod中,并且删除项目未使用的依赖。

单元测试

单元测试规则

. 所有的测试文件以 _test.go 结尾

. func TestXxx (*testing.T) 测试函数需要按照此规范命名

image.png

. 初始化逻辑放到 TestMain 中。

image.png

举一个简单的例子:

运行go test,则该package下所有的测试用例都会执行。