You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行pytest测试代码遇报错及DeprecationWarning警告求助

pytest运行问题排查与解决方案

测试用例相关问题

问题原因

  1. 代码存在语法缩进错误:test_login函数下的print语句没有缩进至函数体内部,直接运行会触发语法报错。
  2. 测试用例嵌套错误:test_logout函数被定义在test_checkout的函数体内部,pytest默认仅收集模块顶层命名符合test_*规则的函数/方法作为测试用例,嵌套的内部函数不会被识别执行。

修复后正确代码

def test_login():
    print("Login to application")

def test_checkout():
    print("Checkout")

def test_logout():
    print("Logout From application")

DeprecationWarning 警告问题

问题原因

该警告和编写的测试代码无关,是本地Anaconda环境中安装的旧版本pyreadline库存在Python版本兼容问题:该库代码中从collections模块导入ABC抽象基类,而Python 3.3及以上版本要求这类抽象基类必须从collections.abc路径导入,旧导入路径在Python 3.10及以上版本会直接运行报错。

解决方案

按优先级选择以下任意一种方案处理即可:

  • 升级pyreadline至兼容版本,执行对应命令:
    用pip管理包时运行:pip install --upgrade pyreadline
    用conda管理包时运行:conda update pyreadline
  • 若升级后警告仍存在,可配置pytest过滤第三方库的无关警告:在项目根目录新建pytest.ini文件,写入以下配置:
[pytest]
filterwarnings =
    ignore::DeprecationWarning:pyreadline.*
  • 若日常开发不需要用到pyreadline(该库仅用于Windows环境下提供命令行行编辑支持,多数测试场景不会实际调用),可直接卸载该库消除警告,执行命令:pip uninstall pyreadline

内容的提问来源于stack exchange,提问作者Gregg m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:24:21