《flask web开发》书中在第七章的test遇到的问题

发布于 2022-09-01 13:08:27 字数 272 浏览 11 评论 0

AssertionError: Popped wrong app context. (<flask.ctx.AppContext object at 0x7f957009ab10> instead of <flask.ctx.AppContext object at 0x7f95711aa2d0>)

错误代码如上

跑python manage.py shell
python manage.py runserver
没问题,非常不解是哪里除了问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凶凌 2022-09-08 13:08:27

这个问题看来已经很久了,不知道现在回答算不算晚。

童鞋们可以按照两个步骤来解决:

  1. 在config里加上PRESERVE_CONTEXT_ON_EXCEPTION = False如果解决了,恭喜你,不用看下一步了
  2. 如果你使用的是mysql,很可能是flask没有生成对应的数据库,这会使得单元测试在setUp初就出错,自然在tearDown时无法找到对应的app_context,解决方法:手动生成测试数据库,之后再执行测试。
稚然 2022-09-08 13:08:27

目前我也遇到同样问题

喜你已久 2022-09-08 13:08:27

检查下是否把 tearDown 写成了 teardown

unittest 包中的tearDown() 方法在测试后运行。

 def tearDown(self):
    db.session.remove()
    db.drop_all()
    self.app_context.pop()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文