现在手里有个 go web 项目准备上 github ci,现在碰到的问题是不知道在 ci 里如何导入测试数据,因此涉及到连数据库的代码无法跑 go test,求大佬们指点。 之前用过 python 中的 factoryboy 库,可以自动生成数据,感觉 go 里面没有这种库(有可能我不知道),那么在 ci 里测试还挺麻烦的,总不能把.sql 文件放到 repo 里面,然后在 ci 里加载吧。。。求大佬们说说 go web 的 ci 该如何做,蟹蟹!
1
janxin 2020-12-29 11:58:42 +08:00
|
2
RedisMasterNode 2020-12-29 12:10:55 +08:00
感觉这个问题和 ci 好像没有关系,应该本地也可以做,或者在单元测试上下功夫 patch 查询,安利文章:
https://mp.weixin.qq.com/s/eAptnygPQcQ5Ex8-6l0byA |
3
andj4cn 2020-12-29 12:38:24 +08:00
涉及数据库的代码不应该被 CI 测试吧,依赖数据库里数据的代码可以对数据 Mock
|
4
bigNewsMaker OP @janxin 蟹蟹大佬
|
5
bigNewsMaker OP @andj4cn mock python 项目依赖数据库的部分可以在 ci 里跑
|
6
bigNewsMaker OP @RedisMasterNode 蟹蟹安利
|
7
zzzmj 2020-12-29 19:03:08 +08:00
单元测试中 我们一般会起一个 sqlite 。数据的话可能还需要 faker 之类的库
|
8
yuyoung 2020-12-29 20:35:06 +08:00
使用 docker-compose,还是挺方便的
|
9
bigNewsMaker OP @zzzmj 用 sqlite 确实可以跑单例,但是实际用的是 mysql 的话,还是要另外测一遍,感觉不是通用做法
|
10
merin96 2020-12-30 15:10:17 +08:00
单元测试就用 go test 做了, 集成测试可以像楼上说的用 docker-compose 起一套全部依赖再跑
|