我正在为脚本中的一系列函数编写我所称的单元测试(但可能是集成测试(,这些函数主要使用SQLAlchemy在MySQL数据库上执行插入/删除/更新查询。
目前我的测试运行如下:
- 启动测试模式
- 使用for循环从每个表都有一张表的电子表格中填充测试模式(使用panda中的
read_excel
和to_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/