day2-Go依赖管理与程序测试| 青训营

72 阅读2分钟

Golang依赖管理与测试

Golang依赖管理

众所周知,不仅仅是对于Golang语言程序,对于所有编程语言所编写的大程序而言,从底层开始搭建程序会用到的所有函数是很麻烦并且不现实的。因此,往往会需要导入第三方库,但是第三方库的开发者往往会对库进行更新,而我们所编写的程序(以Golang语言为例)中不同的project可能需要不同版本的同一个第三方库的支持,从而导致版本冲突。

  • GOPATH环境变量

    • 正如同C和JAVA等语言需要设置环境变量一样,Golang也需要设置环境变量,其主要作用就是使得命令行可以连接到Golang编译器同时对Golang的库进行管理。
    • GOPATH存在一定的弊端,那就是我之前提到的不同版本第三方库之间的问题冲突
  • Go Vendor

    • 那就是如果多个project如果都调用了同一个包,而Go Vendor就解决了这个问题
    • Go Vendor的核心思路就是在项目的目录下增加vendor文件,让所有的依赖包副本形式存在起来
    • 通过每一个项目引入依赖副本,从而让多个项目调用同一个包冲突的问题得到解决
    • 但是Go Vendor仍然存在问题,那便是Go Vendor的前提是复用同一个包的不同版本之间是兼容的,如果不同版本之间不兼容,那么仍然会导致错误
    • 在编译时一般采用可兼容的最低版本的库/包
  • go.mod依赖配置文件

    • go.mod文件主要由三部分组成,分别是依赖管理基本单元、原生库和单元依赖
    • 值得注意的是github.com/...表示这个单元依赖是挂在github上的
Golang程序测试

程序测试是保证程序编写正确与安全的重要保障。与其他源不同,Golang语言在设计时已经考虑到了测试的问题,从而让程序的编写更为高效。

  • 通过编写正确命名格式的测试函数,然后通过go test命令就可以对目标函数进行测试。
  • 通过对测试函数进行编写,测试的结果会显示测试结果是否符合预期与错误所在的地方,从而定位被测函数的问题所在
  • 在命令行中通过加入-cover命令行参数还可以查看被测函数代码的测试覆盖率。