首页 > 解决方案 > 如何从 pytest 夹具中清除 MySQL 数据库

问题描述

我正在使用Python Flask创建一个API。我正在尝试应用 TDD(测试驱动开发)进行开发。

但是,每当我使用pytest夹具中的db.drop_all()并从终端运行测试时,它会在退出测试时冻结。

通过 Gist 共享代码 - https://gist.github.com/himadriganguly/9a431fd329897c9e9e3fb6113ff5eae1

谢谢大家

标签: pythonpython-3.xtddflask-sqlalchemypytest

解决方案


您应该尝试强制会话提交,因为您可能有不完整的事务:

db.session.commit()
db.clear_all()

查看“使用 SQLAlchemy 在 Flask 中冻结 drop_all() ”,那里有人还建议关闭所有会话,因此您也应该尝试一下。


推荐阅读