V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sunkai0609
V2EX  ›  程序员

大公司测试环境也会共用一个测试数据库吗

  •  
  •   sunkai0609 · 2022-06-30 12:35:01 +08:00 · 3132 次点击
    这是一个创建于 910 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 目前我所在的公司测试用的都是同一个数据库,即使测的是不同的功能
    • 所有的功能分支也都是合到 test 分支进行测试,所以可能多个功能一起测试

    感觉理想状况是每个功能单独一个测试环境,单独的数据库,但这样免不了需要额外的人力来维护数据库

    13 条回复    2022-06-30 16:51:49 +08:00
    b1t
        1
    b1t  
       2022-06-30 13:34:59 +08:00 via iPhone
    可以,但没必要,成本太高了
    dcs384371977
        2
    dcs384371977  
       2022-06-30 13:35:32 +08:00
    我这小公司,用了 gitlab 的一个功能,提交合并请求时会自动创建一套环境出来,数据库从测试环境的数据库拷贝过来,数据和功能都是用你自己提交的,测试可以直接在页面点进去测试,合并代码后这套环境自动停止运行
    binge921
        3
    binge921  
       2022-06-30 13:40:32 +08:00
    4 千人的公司不知道算不算大公司 我们是一个部门一个数据库 微服务那种的 测试环境上部署着不同部门的不同微服务
    lovedoing
        4
    lovedoing  
       2022-06-30 13:47:16 +08:00
    1 个 DB ,N 个环境,对应 N 个数据库,区别在于生产环境可能是每个 DB 单独的集群,而测试环境是很多 DB 一个集群,对开发来说是单独的数据库,对 DBA 来说其实也只是运维一个集群,并没有增加额外资源
    xiaotianhu
        5
    xiaotianhu  
       2022-06-30 14:12:00 +08:00
    4w 人公司,自己把库搭在自己开发机上。
    一人一个开发机。
    ql562482472
        6
    ql562482472  
       2022-06-30 14:31:45 +08:00
    @dcs384371977 能详细说下怎么实现的吗 听起来好像不是一个简单的功能
    Velip
        7
    Velip  
       2022-06-30 14:57:30 +08:00
    @dcs384371977 #2 数据量多咋办呢,一个库起码有上百 G 啊
    nothingistrue
        8
    nothingistrue  
       2022-06-30 15:04:39 +08:00
    测试环境跟生产环境,除了前者修改更迅速外,环境上不能有差别,你生产环境用几个数据库,测试环境就得用一个。

    你可能需要的是单元测试的独立数据库。好得单元测试环境,是不需要物理数据库的,临时性的内存数据库即可满足。如果没有那么好的单元测试环境,那就只能本机开个人数据库了,公司或者团队不会提供的,成本不是一般的高。
    balabalaguguji
        9
    balabalaguguji  
       2022-06-30 15:23:24 +08:00
    用 docker 隔离每个测试环境
    lazyfighter
        10
    lazyfighter  
       2022-06-30 15:31:03 +08:00
    数据库都是共用,2 周一个版本,需要合并到一起进行测试,
    dcs384371977
        11
    dcs384371977  
       2022-06-30 15:53:29 +08:00
    @ql562482472 可以参考下 gitlab 的 environment 功能,写 ci 脚本来自动部署的

    @Velip 我说的这种情况是参考于题主问出的这种类似单元测试的问题,如果数据量很大的话,是不是可以考虑只生成部分数据用来测试,不需要全部数据呢
    simonlu9
        12
    simonlu9  
       2022-06-30 16:45:28 +08:00
    小公司没那么多资源,很难搭多套环境,都是共用一个 test 分支
    Suddoo
        13
    Suddoo  
       2022-06-30 16:51:49 +08:00 via iPhone
    每个功能一个环境,n 个环境之间咋同步,你确定自己的功能不依赖别的服务或者模块,自己玩就可以了?

    如果别人负责的模块阻塞了你调试,只能叫负责那个模块的同事到你的环境上帮你改配置、改表结构、更新代码……这样其实效率很低的

    如果别人负责的模块在自己他的环境更新了,而你的环境上还是老的代码,在此基础上,你验自己功能没问题,实际上、换到他的环境上、就能验出来问题

    实际上就是应该所有人共用一套环境
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4179 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:31 · PVG 13:31 · LAX 21:31 · JFK 00:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.