创建多个数据库进行测试是个好主意吗?

问题描述 投票:0回答:1

我有一个应用程序连接到 API 并在数据库中执行一些写入和读取操作。创建集成测试套件时,我创建一个空数据库,并为每个测试创建架构(镜像生产数据库),添加测试所需的数据,执行测试,最后清理所有内容。这种方法在一段时间内运作良好,但当开发人员运行测试时会出现问题,导致测试创建或删除其他开发人员在测试运行中使用的数据。我该如何解决这个问题?我应该创建一个锁来访问测试数据库吗?我应该为每个测试创建一个新数据库吗?

应用程序堆栈:Streamlit - API 网关 - AWS Lambda - 在 AWS RDS 上运行的 MySQL。

更多信息:运行测试时,它们是使用更改 API 端点的环境变量执行的。因此,应用程序使用的数据库连接直接指向测试数据库。测试、开发和生产数据库的参数存储在 AWS Secrets Manager 中

mysql testing pytest devops amazon-rds
1个回答
0
投票

当然!在单独的数据库设置中处理测试干扰可能很棘手,但有一些实用的方法可以处理它:

  • 数据库事务:将其视为测试的“撤消”按钮。它 每次测试后回滚更改,保持数据库干净。
  • 重置快照:拍摄数据库的“之前”图片并在每次测试后恢复它,确保每次都有一个新的开始。
  • 一个测试,一个数据库:为每个测试提供自己的数据库空间,可以避免冲突并使事情井井有条。
  • 数据库锁定:实施锁定系统,只允许一个测试通过,从而防止多个测试互相干扰。 一次访问数据库。

选择最适合您需求的方法来维护整洁的测试和管理良好的数据库!

© www.soinside.com 2019 - 2024. All rights reserved.