温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用python pytest调试

发布时间:2026-10-14 20:32:24 来源:亿速云 阅读:106 作者:小樊 栏目:编程语言

下面从入门到进阶,系统讲一下如何用 pytest 进行调试(不只是“运行测试”,而是“定位问题”)。


一、最基础的 pytest 调试方式

1. 运行单个测试

pytest test_sample.py

2. 只运行失败的测试

pytest -x          # 遇到第一个失败就停
pytest --lf        # 只运行上次失败的
pytest --ff        # 先跑失败的

3. 显示详细信息

pytest -v
pytest -vv

二、查看错误详情(最重要)

1. 查看完整 traceback

pytest -l          # 显示局部变量
pytest --tb=long
pytest --tb=short
pytest --tb=line

推荐调试时用:

pytest -l --tb=long

三、在测试中“打印调试”

1. 使用 print(需要 -s)

def test_demo():
    x = 1
    print("x =", x)
    assert x == 2

运行:

pytest -s

四、使用 Python 调试器(pdb)

1. 失败时自动进入 pdb

pytest --pdb

2. 第一个失败就进 pdb

pytest -x --pdb

3. 在代码里手动打断点

def test_demo():
    x = 10
    import pdb; pdb.set_trace()
    assert x == 20

常用 pdb 命令:

n  # 下一步
s  # 进入函数
c  # 继续
p x  # 打印变量
l  # 查看代码
q  # 退出

五、使用更现代的调试器(推荐)

1. ipdb(更好用)

pip install ipdb
import ipdb
ipdb.set_trace()

2. breakpoint(Python 3.7+)

def test_demo():
    x = 5
    breakpoint()
    assert x == 6

六、结合 IDE 调试(最推荐)

PyCharm

  • 在测试函数左侧点 断点
  • 右键 → Debug ‘test_xxx’

VS Code

  • 安装 Python 插件
  • 创建 launch.json
  • 选择 Python: Module → pytest

示例 launch.json:

{
  "name": "pytest",
  "type": "python",
  "request": "launch",
  "module": "pytest",
  "args": ["-s"]
}

七、调试 fixture 问题

1. 查看 fixture 调用顺序

pytest --setup-show

2. fixture 里打断点

@pytest.fixture
def data():
    x = 1
    breakpoint()
    return x

八、常见调试场景速查

问题 命令
测试不运行 pytest --collect-only
想看变量 pytest -l
想进调试器 pytest --pdb
只看失败 pytest --lf
fixture 错 pytest --setup-show

九、推荐调试组合(个人经验)

pytest -x -l --tb=long --pdb

或本地开发:

pytest -s --pdb

如果你愿意,可以告诉我:

  • 你用的是 PyCharm / VS Code / 命令行
  • 是 单元测试 / 接口测试 / Web 自动化
  • 当前卡在什么错误

我可以给你更具体的调试方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手