Go语言测试实践 | 青训营

63 阅读2分钟

Go语言测试 测试包括回归测试、集成测试和单元测试三种,逐个覆盖范围增大 如果缺失测试环节,将会对项目开发与落实造成重大损失。例如缺少幂等测试会导致同一用户多次提钱。 Go语言以--cover可以显示代码对statements的覆盖率。

依赖管理 依赖 是 go语言的开发包;利用已经封装好的、经过验证的开发组件或工具提升效率。涉及框架、日志、driver、以及collection等一系列依赖都会通过sdk的方式引入。因此,对依赖包的管理就显得尤为重要。 Go语言的依赖管理主要使用Go模块来。Go模块,是从Go 1.11版本开始引入的依赖管理工具,自golang 1.13开始,成为golang默认依赖管理工具。使用Go模块可以方便管理项目的依赖关系,并且能够确保构建过程的可重复性。

使用Go模块进行依赖管理的步骤如下:

  1. 在项目的根目录下执行命令go mod init,将当前目录初始化为一个Go模块。
  2. 在代码中使用import语句引入需要的依赖包。
  3. 执行命令go buildgo run时,Go编译器会自动下载依赖包并构建项目。下载的依赖包会被缓存在$GOPATH/pkg/mod目录下。

在Go模块中,可以使用go get命令来获取和更新依赖包,并且可以指定依赖包的版本。如,执行命令go get github.com/gin-gonic/gin@v1.7.2可以获取gin框架的v1.7.2版本。

除了使用go get命令外,还可以直接修改项目根目录下的go.mod文件来管理依赖包。在go.mod文件中,可以手动指定依赖包的版本或者使用特定的版本范围。

总的来说,Go语言的依赖管理通过Go模块来实现,能够很好地管理项目的依赖关系,并且保证构建过程的稳定性和可重复性。

Go语言依赖管理经历了go path, go vendor, go module这三个阶段。 Go Path下,依赖的下载路径在$GOPATH/src下面,当程序编译的时候就会到$GOPATH/src下面找到相关的依赖,做编译和链接。 在Go vendor机制下,若当前项目存在vendor目录,优先使用该目录下的依赖。其缺陷是,不能很好解决依赖包版本变动问题 和 项目依赖同一包的不同版本的问题。 在Go module 机制下,通过go.mod文件管理依赖包版本;通过go get/go mod指令