当我通过运行以下命令为python项目运行测试时:
python setup.py test
(or)
pytest project_name
我收到以下错误:
.../project_name/.eggs/pytest_asyncio-0.9.0-py3.6.egg/pytest_asyncio/plugin.py", line 8, in <module>
from _pytest.python import transfer_markers
ImportError: cannot import name 'transfer_markers'
答案 0 :(得分:10)
当我在网上查找时,几乎没有任何地方提到该特定错误消息。在以前可以正常工作的代码中断之前,我发生过几次类似的事情,这通常是因为有一个重要软件包的新版本。
我看着pytest release history,看起来pytest==4.1.0
已在几个小时前发布(截至本文)。
解决方案是通过运行以下命令来还原到pytest的最后一个稳定版本,即pytest==4.0.2
:
pip install pytest==4.0.2
测试正在运行。
答案 1 :(得分:2)
pytest-asyncio已更新为0.10.0
pytest-asyncio使用的是transfer_markers,该标记在pytest 4.1.0中已删除。 看起来像是已修复并已发布。 问题#105编辑:您现在可以升级MessageSerializer.sourceMessageSerializer
来解决此问题。
或在您的requirements.txt中更新pip install pytest-asyncio==0.10.0
如果您先前安装了pytest 4.0.2来临时解决问题,请不要忘记运行pytest-asyncio==0.10.0
来保持pytest的最新状态