Python测试与调试
测试与调试
unittest
标准库内置测试框架:
1 | # test_mathutil.py |
1 | python -m unittest discover -s tests -v |
pytest(推荐)
语法简洁,生态丰富:
1 | # test_mathutil.py |
1 | pip install pytest |
fixture
1 |
|
mock
1 | from unittest.mock import patch, MagicMock |
调试技巧
print 调试
1 | print(f"{var=}") # Python 3.8+,print(var=42) |
pdb 断点
1 | import pdb; pdb.set_trace() # 传统方式 |
常用命令:n 下一步、s 步入、c 继续、p var 打印变量、q 退出。
logging 调试
1 | import logging |
性能分析
1 | import cProfile |
1 | import timeit |
代码质量工具
1 | pip install ruff mypy |
测试最佳实践
- 测试文件命名
test_*.py或*_test.py - 每个测试只验证一个行为
- 用 fixture 管理测试数据,避免重复
- 集成测试与单元测试分离
- CI 中运行
pytest --cov和ruff check
小结
- 新项目优先 pytest,参数化与 fixture 提高效率
breakpoint()快速断点调试- ruff + mypy 保证代码风格与类型安全
- 测试覆盖核心逻辑,不必追求 100%