Golang Go语言中 [ CI ] 请教大佬们 go web 项目如何做 CI

Golang Go语言中 [ CI ] 请教大佬们 go web 项目如何做 CI

现在手里有个 go web 项目准备上 github ci,现在碰到的问题是不知道在 ci 里如何导入测试数据,因此涉及到连数据库的代码无法跑 go test,求大佬们指点。 之前用过 python 中的 factoryboy 库,可以自动生成数据,感觉 go 里面没有这种库(有可能我不知道),那么在 ci 里测试还挺麻烦的,总不能把.sql 文件放到 repo 里面,然后在 ci 里加载吧。。。求大佬们说说 go web 的 ci 该如何做,蟹蟹!


更多关于Golang Go语言中 [ CI ] 请教大佬们 go web 项目如何做 CI的实战教程也可以访问 https://www.itying.com/category-94-b0.html

11 回复

更多关于Golang Go语言中 [ CI ] 请教大佬们 go web 项目如何做 CI的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


感觉这个问题和 ci 好像没有关系,应该本地也可以做,或者在单元测试上下功夫 patch 查询,安利文章:
https://mp.weixin.qq.com/s/eAptnygPQcQ5Ex8-6l0byA

涉及数据库的代码不应该被 CI 测试吧,依赖数据库里数据的代码可以对数据 Mock

蟹蟹大佬

mock python 项目依赖数据库的部分可以在 ci 里跑

蟹蟹安利

单元测试中 我们一般会起一个 sqlite 。数据的话可能还需要 faker 之类的库

使用 docker-compose,还是挺方便的

用 sqlite 确实可以跑单例,但是实际用的是 mysql 的话,还是要另外测一遍,感觉不是通用做法

单元测试就用 go test 做了, 集成测试可以像楼上说的用 docker-compose 起一套全部依赖再跑

在Go语言(Golang)的Web项目中,实施持续集成(CI)能够极大地提高开发效率和代码质量。以下是一些关于如何在Go Web项目中设置CI的建议:

  1. 选择合适的CI平台:首先,你需要选择一个CI平台,如GitHub Actions、GitLab CI、Travis CI或CircleCI等。这些平台都提供了丰富的功能和良好的集成性。

  2. 编写CI配置文件:根据你的CI平台,编写相应的配置文件(如.github/workflows/目录下的YAML文件、.gitlab-ci.yml等)。在配置文件中,定义构建、测试和部署等阶段的任务。

  3. 自动化测试:在CI配置中,确保包含自动化测试任务。运行单元测试、集成测试等,以验证代码的正确性。使用Go的go test命令可以方便地执行这些测试。

  4. 依赖管理:使用Go Modules(go.modgo.sum文件)来管理项目依赖。在CI配置中,确保使用正确的Go版本和依赖版本。

  5. 构建和部署:在CI配置中,定义构建和部署任务。这可能包括编译Go代码、构建Docker镜像、推送镜像到镜像仓库,以及在服务器上部署应用等。

  6. 监控和反馈:设置CI通知,以便在构建失败或测试失败时及时获得反馈。这有助于快速定位和修复问题。

通过遵循这些步骤,你可以在Go Web项目中有效地实施CI,从而提高开发效率和代码质量。

回到顶部