问题标签 [pytest-asyncio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 使用 pytest-asyncio 和 aiohttp 时“忽略异常:RuntimeError:事件循环已关闭”
我正在用 pytest 编写 python 测试并且有一些我想测试的异步代码,所以我安装了 pytest-asyncio 插件。异步代码使用 aiohttp 并运行测试我在测试成功运行后收到以下警告/错误/提示。
我正在使用python -m pytest运行以下代码
当我发帖时,测试后的警告不会发生
这是我的要求.txt
异常被忽略的警告的目的是什么,为什么它只在某些情况下出现?
python - 多个异步单元测试失败,但一个一个运行它们会通过
我有两个单元测试,如果我一个一个运行它们,它们就会通过。如果我在班级级别运行它们,则一次通过,另一次失败response = await ac.post(
并显示错误消息:RuntimeError: Event loop is closed
我已经尝试了几个小时,请问我错过了什么?
python-3.x - 属性错误:“nonetype”对象没有用于异步等待的属性“空”
如何为 y() 编写测试方法?在模拟 x() 后,出现此错误:attribute error: 'nonetype' object has no attribute 'empty'
test_y.py:
x_mock()
基本上是创建一个数据框
python - 如何在 fastapi 中使用 httpx AsyncClient 和 pytest?
我已经尝试了所有我能找到的东西,但我无法让异步测试工作。
我开始RuntimeError: This event loop is already running
运行TestClient
(根据文档这很有意义),但我开始httpx.ConnectError: [Errno 8] nodename nor servname provided, or not known
使用httpx AsyncClient
.
我有一个简单的测试:
在哪里 /media
:
my_media_ep
是一个带有多个异步 api 调用的长函数。
我也按照Async Tests docs中的建议进行了尝试,但得到了同样的错误。
有什么建议或例子吗?
python - 无法在异步功能测试中引发错误
我pytest-asyncio
在我目前正在进行的项目中使用。
在这个项目中,我实现了存储库模式和测试,我编写了一个简单的“内存存储库”(即:dict with pk on keys 和entities on values)。此存储库是一个具有异步方法的类,并具有以下方法:
我有以下测试:
whereservice.handle
是另一个在第一行有 a 而没有在里面的async
函数。await repository.update(pk)
try/catch
问题是这个通过(显然应该失败)即使使用assert 1==2
. 出于某种原因,我什至不能pdb/ipdb.set_trace()
在存储库调用之后使用。
Pytest 向我显示此警告:
如何使用 传播测试中的 de 异常pytest-asyncio
?
python-3.x - 如果任何任务引发异常,Python asyncio.gather() 不会返回结果
asyncio.gather的文档说
如果 return_exceptions 为 False(默认值),则第一个引发的异常会立即传播到在 gather() 上等待的任务。aws 序列中的其他等待对象不会被取消,并将继续运行。
我运行上面的代码没有任何东西绑定到results
变量,因为其中一项任务引发了异常。我不明白该文档,它说如果return_exceptions=True
,则异常被收集,如果是False
,则第一个引发的异常被传播到任务,其他等待对象继续运行。我希望引发 excpetion 的任务不会出现在 collect 中results
,但是NameError
当我尝试获得成功任务的结果时,我得到了。
pytest - 如何使用 pytest-asyncio 更改或检查测试的顺序
我正在使用pytest-asyncio
但找不到任何关于如何确保文件运行顺序的文档?例如,如果我有test_user.py
并且test_item.py
想test_user
先运行,有没有办法做到这一点?
python - 从 pytest 设备运行异步服务器
我正在尝试在 pytest 夹具中使用 asyncio 运行服务器
方法start
如下
而一旦尝试打开与服务器的连接,测试就会打印此错误
编辑:问题是事件循环在之后立即关闭,所以我试图用标记我所有的灯具,(scope="module")
但现在我得到了
编辑2:
所以我添加了event_loop
夹具
这应该覆盖每个夹具的默认循环,使用@pytest.mark.asyncio
.
通过在我的测试中进行调试,event_loop
等于我存储在ServerEndpoint
(即asyncio.get_running_loop()
)内的循环,但我仍然得到ConnectionRefusedError
python-asyncio - 使用流为 asyncio 编写 pytest 测试用例
我正在尝试为 asyncio 函数编写一个 pytest 测试用例,该函数确实读取输出流(stderr/stdout)并修改行。我要测试的函数(再次被调用 inside asyncio.gather
)如下所示:
我写的pytest测试用例如下:
但是,当我执行这个 pytest 时,我遇到了AttributeError: 'str' object has no attribute 'read'
. 如何在处理 stdout/stderr 流时测试 asyncio 协程?
python-asyncio - Pytest 一个调用异步协程的函数
我正在尝试使用 mock 和 pytest-asyncio 编写一个单元测试用例。我有一个正常的功能,使用asyncio.run
. 【使用python3.7】
我能够为 asyncio 函数编写单元测试,sample_async
但不能为launcher
. 这是我尝试过的:
当我尝试运行 pytest 时,由于该函数不是 asyncio 协程,因此我一直RuntimeError: There is no current event loop in thread 'MainThread'.
无法@pytest.mark.asyncio
用于此测试。launcher
我在这里做错了什么?