python - 如何从 pytest 夹具中清除 MySQL 数据库
问题描述
我正在使用Python Flask创建一个API。我正在尝试应用 TDD(测试驱动开发)进行开发。
但是,每当我使用pytest夹具中的db.drop_all()并从终端运行测试时,它会在退出测试时冻结。
通过 Gist 共享代码 - https://gist.github.com/himadriganguly/9a431fd329897c9e9e3fb6113ff5eae1
谢谢大家
解决方案
您应该尝试强制会话提交,因为您可能有不完整的事务:
db.session.commit()
db.clear_all()
查看“使用 SQLAlchemy 在 Flask 中冻结 drop_all() ”,那里有人还建议关闭所有会话,因此您也应该尝试一下。
推荐阅读
- amazon-web-services - 具有 Cloud Formation 的 Api Gateway S3 代理不会接受存储桶 ARN,但会接受所有存储桶
- python - ValueError:使用 Librosa 读取 mp3 时嵌入空字符
- coldfusion - 删除匹配短语右侧的所有内容
- python - 将抓取的链接写入文件时出现类型错误
- javascript - 用于强制字母数字和特殊字符输入值的 JS 验证功能
- gnuplot - Is there a way to combine "variable pointsize", with "ticlabels" in gnuplot?
- gcc - 无法从引导加载程序调用实模式 C 函数(NASM + GCC 工具链)
- python - 如何对大于0的数据进行分组和平均?
- android - Android/Kotlin:如何获取对 Firestore 子集合中文档的 DocumentReference?
- javascript - 如何获取 AccessToken