Orenoid
V2EX  ›  问与答

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

  •  
  •   Orenoid · Nov 23, 2020 · 2300 views
    This topic created in 2034 days ago, the information mentioned may be changed or developed.

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

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

    比如用户登录相关的一个应用的套路就是:
    先按照一定规则生成一个用户名,和一个固定的密码,去注册一个账户
    然后用这套账号密码调登录接口拿到它的 JWT
    这时准备结束,开始测试
    测试期间的接口鉴权都用这个测试账号的 JWT,校验就是校验返回是否符合预期
    Orenoid
        2
    Orenoid  
    OP
       Nov 24, 2020
    @boris93 #1 谢谢回答,所以你们的数据库服务是持续运行的是吧,不会测试之后就销毁
    boris93
        3
    boris93  
       Nov 24, 2020 via Android   ❤️ 1
    @Orenoid #2 是的。开发环境的数据库是一直运行的。集成测试就直接拿开发用的数据库操作。
    我们的开发环境数据库也不是跑在本机,而是跑在服务器上的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1046 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:08 · PVG 02:08 · LAX 11:08 · JFK 14:08
    ♥ Do have faith in what you're doing.