感觉理想状况是每个功能单独一个测试环境,单独的数据库,但这样免不了需要额外的人力来维护数据库
1
b1t 2022-06-30 13:34:59 +08:00 via iPhone
可以,但没必要,成本太高了
|
2
dcs384371977 2022-06-30 13:35:32 +08:00
我这小公司,用了 gitlab 的一个功能,提交合并请求时会自动创建一套环境出来,数据库从测试环境的数据库拷贝过来,数据和功能都是用你自己提交的,测试可以直接在页面点进去测试,合并代码后这套环境自动停止运行
|
3
binge921 2022-06-30 13:40:32 +08:00
4 千人的公司不知道算不算大公司 我们是一个部门一个数据库 微服务那种的 测试环境上部署着不同部门的不同微服务
|
4
lovedoing 2022-06-30 13:47:16 +08:00
1 个 DB ,N 个环境,对应 N 个数据库,区别在于生产环境可能是每个 DB 单独的集群,而测试环境是很多 DB 一个集群,对开发来说是单独的数据库,对 DBA 来说其实也只是运维一个集群,并没有增加额外资源
|
5
xiaotianhu 2022-06-30 14:12:00 +08:00
4w 人公司,自己把库搭在自己开发机上。
一人一个开发机。 |
6
ql562482472 2022-06-30 14:31:45 +08:00
@dcs384371977 能详细说下怎么实现的吗 听起来好像不是一个简单的功能
|
7
Velip 2022-06-30 14:57:30 +08:00
@dcs384371977 #2 数据量多咋办呢,一个库起码有上百 G 啊
|
8
nothingistrue 2022-06-30 15:04:39 +08:00
测试环境跟生产环境,除了前者修改更迅速外,环境上不能有差别,你生产环境用几个数据库,测试环境就得用一个。
你可能需要的是单元测试的独立数据库。好得单元测试环境,是不需要物理数据库的,临时性的内存数据库即可满足。如果没有那么好的单元测试环境,那就只能本机开个人数据库了,公司或者团队不会提供的,成本不是一般的高。 |
9
balabalaguguji 2022-06-30 15:23:24 +08:00
用 docker 隔离每个测试环境
|
10
lazyfighter 2022-06-30 15:31:03 +08:00
数据库都是共用,2 周一个版本,需要合并到一起进行测试,
|
11
dcs384371977 2022-06-30 15:53:29 +08:00
@ql562482472 可以参考下 gitlab 的 environment 功能,写 ci 脚本来自动部署的
@Velip 我说的这种情况是参考于题主问出的这种类似单元测试的问题,如果数据量很大的话,是不是可以考虑只生成部分数据用来测试,不需要全部数据呢 |
12
simonlu9 2022-06-30 16:45:28 +08:00
小公司没那么多资源,很难搭多套环境,都是共用一个 test 分支
|
13
Suddoo 2022-06-30 16:51:49 +08:00 via iPhone
每个功能一个环境,n 个环境之间咋同步,你确定自己的功能不依赖别的服务或者模块,自己玩就可以了?
如果别人负责的模块阻塞了你调试,只能叫负责那个模块的同事到你的环境上帮你改配置、改表结构、更新代码……这样其实效率很低的 如果别人负责的模块在自己他的环境更新了,而你的环境上还是老的代码,在此基础上,你验自己功能没问题,实际上、换到他的环境上、就能验出来问题 实际上就是应该所有人共用一套环境 |