【问题标题】:PyTest Stuck When Upgrading From Python 3.8.3 to 3.10.7从 Python 3.8.3 升级到 3.10.7 时,PyTest 卡住了
【发布时间】:2022-10-04 21:06:43
【问题描述】:

我正在使用 FastAPI 在 Python 中开发 API。我按照https://fastapi.tiangolo.com/ 上的用户指南进行操作,对该应用程序非常满意。

我想将 Python 版本从 3.8.3 升级到 3.10.7,但在执行单元测试时遇到了奇怪的行为。成功收集并执行后,PyTest 不会停止。因此,所有管道都会超时,无法继续进行项目。

让我向您展示详细信息:

所有测试都是绿色的,PyTest 返回退出代码 0。好!

升级到 3.10.7 后会发生以下情况:

它既不会在本地(Windows)上也不会在 CI(Docker 容器)上停止。 我考虑了可能仍在运行的 event_loops 和其他测试插件来执行单元测试。我还没有找到合适的解决方案。

有谁知道问题可能源于什么? 任何帮助深表感谢。

干杯,

L.

【问题讨论】:

    标签: python-3.x pytest fastapi nest-asyncio


    【解决方案1】:

    我找到了解决我的问题的方法如下:

    我在内部使用了nest_asyncio,这在执行单元测试时停止嵌套事件循环时会导致问题,因为它根本不起作用。我不一定需要asyncio 在内部实现对 API 的调用。实施后,单元测试按预期停止。令人惊讶的是 nest_asyncio 正在使用 Python 3.8.3,但不适用于 Python 3.10.7。

    更新:GitHub Issue nest_asyncio

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2019-05-30
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多