V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Orenoid
V2EX  ›  问与答

如何把需要连接真实数据库的集成测试,放到自动化部署的流程里

  •  
  •   Orenoid · 2020-11-23 17:10:06 +08:00 · 1105 次点击
    这是一个创建于 1221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    打算给项目写一些测试用例,不打算从单元测试层面写起,排期以及现有代码结构不太允许。
    计划直接对一些接口进行测试,要连接真实数据库,不考虑内存数据库或者 Mock,技术栈是 Go+Echo+PostgreSQL+Jenkins
    网上搜了下,没找到比较完整可供参考的例子,目前初步设想就是每次部署用 Docker 跑一个一次性的 DB 容器,或者持续运行一个 DB 服务,专门用于跑测试,然后 Pre-Merge 阶段跑一下测试。各位有没有什么更成熟的方案或资料推荐一下?

    3 条回复    2020-11-24 10:57:14 +08:00
    boris93
        1
    boris93  
       2020-11-23 22:20:45 +08:00 via Android   ❤️ 1
    我司的实现是
    应用连上 dev 环境的数据库
    初始化阶段先调一堆接口,去生成一条测试用的数据及其周边数据
    然后就用这条数据去做集成测试

    比如用户登录相关的一个应用的套路就是:
    先按照一定规则生成一个用户名,和一个固定的密码,去注册一个账户
    然后用这套账号密码调登录接口拿到它的 JWT
    这时准备结束,开始测试
    测试期间的接口鉴权都用这个测试账号的 JWT,校验就是校验返回是否符合预期
    Orenoid
        2
    Orenoid  
    OP
       2020-11-24 09:26:29 +08:00
    @boris93 #1 谢谢回答,所以你们的数据库服务是持续运行的是吧,不会测试之后就销毁
    boris93
        3
    boris93  
       2020-11-24 10:57:14 +08:00 via Android   ❤️ 1
    @Orenoid #2 是的。开发环境的数据库是一直运行的。集成测试就直接拿开发用的数据库操作。
    我们的开发环境数据库也不是跑在本机,而是跑在服务器上的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3357 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:17 · PVG 08:17 · LAX 17:17 · JFK 20:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.