虽然通过子类化IsolatedAsyncioTestCase来实现Python单元测试,但它仅成功运行第一个测试用例。对于任何后续测试用例,它都会抛出事件循环已关闭的错误。 Windows 和 Mac 中都会发生这种情况。您能否建议如何确保在我已实现的IsolatedAsyncioTestCase 的每个子类中执行测试期间事件循环正在运行。
最佳答案
我在尝试运行集成测试时遇到了同样的问题。第一个测试通过了,但第二个测试出现“事件循环已关闭”错误。我将 MognoDB 与异步驱动程序一起使用。出现此错误的原因是数据库连接的打开方式。 isolatedAsyncioTestCase 在开始时创建一个新的事件循环,并在执行结束时关闭它。
因此,一个驱动程序连接被附加到第一个 TestCase 的事件循环中,当第二个 TestCase 启动时,它会抛出错误,因为第一个 TestCase 的事件循环已经关闭,但新事件中的新连接未创建循环。
解决方案是在每个isolatedAsyncioTestCase中创建一个新的数据库连接。
关于python - 如何解决 python unittest 的事件循环已关闭的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75566800/