[ CI ] 请教大佬们 go web 项目如何做 CI

2020-12-29 11:04:20 +08:00
 bigNewsMaker

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

2357 次点击
所在节点    Go 编程语言
10 条回复
janxin
2020-12-29 11:58:42 +08:00
RedisMasterNode
2020-12-29 12:10:55 +08:00
感觉这个问题和 ci 好像没有关系,应该本地也可以做,或者在单元测试上下功夫 patch 查询,安利文章:
https://mp.weixin.qq.com/s/eAptnygPQcQ5Ex8-6l0byA
andj4cn
2020-12-29 12:38:24 +08:00
涉及数据库的代码不应该被 CI 测试吧,依赖数据库里数据的代码可以对数据 Mock
bigNewsMaker
2020-12-29 13:18:28 +08:00
@janxin 蟹蟹大佬
bigNewsMaker
2020-12-29 13:19:33 +08:00
@andj4cn mock python 项目依赖数据库的部分可以在 ci 里跑
bigNewsMaker
2020-12-29 13:19:56 +08:00
@RedisMasterNode 蟹蟹安利
zzzmj
2020-12-29 19:03:08 +08:00
单元测试中 我们一般会起一个 sqlite 。数据的话可能还需要 faker 之类的库
yuyoung
2020-12-29 20:35:06 +08:00
使用 docker-compose,还是挺方便的
bigNewsMaker
2020-12-29 21:37:35 +08:00
@zzzmj 用 sqlite 确实可以跑单例,但是实际用的是 mysql 的话,还是要另外测一遍,感觉不是通用做法
merin96
2020-12-30 15:10:17 +08:00
单元测试就用 go test 做了, 集成测试可以像楼上说的用 docker-compose 起一套全部依赖再跑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX