当前位置: 代码迷 >> 综合 >> Unit Test In Go With Docker
  详细解决方案

Unit Test In Go With Docker

热度:39   发布时间:2023-12-12 18:20:41.0

本篇文章主要讲解如何在 Docker 中进行 Go 单元测试,依赖 Docker 和 Go Modules。

为什么是 Docker

在 Docker 之前我们往往需要在 Jenkins 服务器上配置不同的 Go 版本以及针对每个项目配置 GOPATH,项目之间的隔离性差,经常出现基础库版本冲突的问题。

有了 Docker,我们可以在不同容器中运行单元测试,该测试不局限不同项目,甚至可以是同一项目不同分支。

所以在测试隔离性和项目测试并发度上都有很大提升,而且测试结束后,环境清理也简单许多。

为什么是 Go Modules

Go Modules 作为官方默认的包管理工具,基本解决了 Go 长期存在的包管理问题,它为我们的项目管理带来很多好处:

  • 自动解析和添加依赖
  • 签名验证
  • 依赖缓存
  • 支持相对路径依赖
  • 支持依赖一键打包,方便在离线环境下运行程序

实际例子

下面我们来看一个简单例子,来自 Gin Testing Example,项目目录结构为:

$ tree .
.
├── go.mod
├── go.sum
├── main.go
└── main_test.go0 directories, 4 files

main.go 内容:

package mainfunc setupRouter() *gin.Engine {r := gin.Default()r.GET("/ping", func(c *gin.Context) 
  相关解决方案