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

2020-11-23 17:10:06 +08:00
 Orenoid

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

1149 次点击
所在节点    问与答
3 条回复
boris93
2020-11-23 22:20:45 +08:00
我司的实现是
应用连上 dev 环境的数据库
初始化阶段先调一堆接口,去生成一条测试用的数据及其周边数据
然后就用这条数据去做集成测试

比如用户登录相关的一个应用的套路就是:
先按照一定规则生成一个用户名,和一个固定的密码,去注册一个账户
然后用这套账号密码调登录接口拿到它的 JWT
这时准备结束,开始测试
测试期间的接口鉴权都用这个测试账号的 JWT,校验就是校验返回是否符合预期
Orenoid
2020-11-24 09:26:29 +08:00
@boris93 #1 谢谢回答,所以你们的数据库服务是持续运行的是吧,不会测试之后就销毁
boris93
2020-11-24 10:57:14 +08:00
@Orenoid #2 是的。开发环境的数据库是一直运行的。集成测试就直接拿开发用的数据库操作。
我们的开发环境数据库也不是跑在本机,而是跑在服务器上的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728403

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX