如何从pytest fixture中清除MySQL数据库

时间:2018-05-19 20:26:27

标签: python python-3.x tdd flask-sqlalchemy pytest

我正在使用 Python Flask 创建 API 。我正在尝试将TDD(测试驱动开发)应用于开发。

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

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

提前谢谢大家

1 个答案:

答案 0 :(得分:1)

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

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

查看“ drop_all() freezes in Flask with SQLAlchemy”,那里的人也建议关闭所有会话,因此您也应该尝试关闭它。