在MySQL数据库上运行单元/集成测试的最佳方式是什么



我正在为脚本中的一系列函数编写我所称的单元测试(但可能是集成测试(,这些函数主要使用SQLAlchemy在MySQL数据库上执行插入/删除/更新查询。

目前我的测试运行如下:

  • 启动测试模式
  • 使用for循环从每个表都有一张表的电子表格中填充测试模式(使用panda中的read_excelto_sql(
  • 运行测试功能
  • 使用熊猫的read_sql查询模式以获得测试结果数据帧
  • 使用assert_frame_equal将测试结果与预期结果进行比较(预期结果也从Excel文件中的表格中提取(

这似乎过于复杂,我确信我不是唯一一个在MySQL上运行测试的人。有更好的方法吗?

我考虑过为每次测试创建MySQL转储文件,但这似乎需要付出很多努力——它们不像Excel文件那样快速构建。。。

我们已经成功地使用jest对调用数据库的DAL服务逻辑运行集成测试。我们创建了一个并行数据库,在其中运行迁移,并在每次测试后截断所有表。

这里有一个链接:https://walrus.ai/blog/2020/04/testing-database-interactions-with-jest/

要将Jest与Python一起使用,请执行以下操作:https://jest-community.github.io/jest-pytest/

最新更新