python - 如何解决 python unittest 的事件循环已关闭的错误?

标签 python python-asyncio python-unittest

虽然通过子类化IsolatedAsyncioTestCase来实现Python单元测试,但它仅成功运行第一个测试用例。对于任何后续测试用例,它都会抛出事件循环已关闭的错误。 Windows 和 Mac 中都会发生这种情况。您能否建议如何确保在我已实现的IsolatedAsyncioTestCase 的每个子类中执行测试期间事件循环正在运行。

最佳答案

我在尝试运行集成测试时遇到了同样的问题。第一个测试通过了,但第二个测试出现“事件循环已关闭”错误。我将 MognoDB 与异步驱动程序一起使用。出现此错误的原因是数据库连接的打开方式。 isolatedAsyncioTestCase 在开始时创建一个新的事件循环,并在执行结束时关闭它。

因此,一个驱动程序连接被附加到第一个 TestCase 的事件循环中,当第二个 TestCase 启动时,它会抛出错误,因为第一个 TestCase 的事件循环已经关闭,但新事件中的新连接未创建循环。

解决方案是在每个isolatedAsyncioTestCase中创建一个新的数据库连接。

关于python - 如何解决 python unittest 的事件循环已关闭的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75566800/

相关文章:

python - 断言函数未在 Python unittest 中执行

python - 民意调查应用程序——django 教程不工作

python - 异步 : [ERROR] Task was destroyed but it is pending

python - 使用 asyncio 创建两个并发的异步任务

unit-testing - 单元测试: How can you set attributes in a class

python - 使用 python3 和没有 __init__.py 文件的递归单元测试发现

python - 从多进程切换到多线程 Dask.DataFrame

python - 这个 psycopg2 代码可以安全地注入(inject)吗?

python - 如何在 Python 中使用 Kerberos 库?

python-3.x - 二进制文件上传的 aiohttp POST 问题