Gordon Fierceと同様に、FlaskとSQLAlchemyで同じSQLite/Postgresの問題が発生しました。しかし、私の解決策は異なっていました。 Postgresはテーブルのロックと接続に厳密であるため、ティアダウン時にセッション接続を明示的に閉じることで問題が解決しました。
私の作業コード:
@pytest.yield_fixture(scope='function')
def db(app):
# app is an instance of a flask app, _db a SQLAlchemy DB
_db.app = app
with app.app_context():
_db.create_all()
yield _db
# Explicitly close DB connection
_db.session.close()
_db.drop_all()
参照: SQLAlchemy