python-testinglisted
Install: claude install-skill afine907/skills
# Python Testing — Python 测试完整指南
从单元测试到集成测试的完整 Python 测试方法论。
## Goal
Python 测试完整指南:pytest、mock/patch、参数化、fixtures、异步测试、覆盖率
## Trigger
- 用户要求"写测试"、"Python测试"、"pytest"
- 需要 mock/patch 外部依赖
- 需要参数化测试或 fixtures
- 需要测试覆盖率报告
## 工作流程
```
确定测试类型 → 编写测试用例 → Mock 外部依赖 → 运行测试 → 检查覆盖率
```
详见下方各测试主题的详细指南。
## 测试策略
### 测试金字塔
```
/ E2E \ 少量,验证关键流程
/ 集成测试 \ 中量,验证模块协作
/ 单元测试 \ 大量,验证函数逻辑
```
### 测试分类
| 类型 | 标记 | 运行方式 | 速度 | 范围 |
|------|------|----------|------|------|
| 单元测试 | `@pytest.mark.unit` | `pytest -m unit` | 快 | 单个函数/类 |
| 集成测试 | `@pytest.mark.integration` | `pytest -m integration` | 中 | 多模块协作 |
| E2E 测试 | `@pytest.mark.e2e` | `pytest -m e2e` | 慢 | 完整流程 |
| 慢测试 | `@pytest.mark.slow` | `pytest -m "not slow"` | 慢 | 耗时操作 |
## pytest 核心
### 命令速查
```bash
# 运行测试
pytest # 运行所有测试
pytest -v # 详细输出
pytest -x # 失败时停止
pytest -k "login" # 匹配测试名
pytest -m unit # 按标记运行
pytest --tb=short # 简短回溯
pytest --tb=long # 详细回溯
# 并行执行
pytest -n 4 # 4 个进程并行
pytest -n auto # 自动检测 CPU 数
# 调试
pytest -s # 不捕获输出
pytest --pdb # 失败时进入调试器
pytest --lf # 只运行上次失败的测试
pytest -vv --tb=long # 最详细输出
# 覆盖率
pytest --cov=myapp # 显示覆盖率
pytest --cov=myapp --cov-report=htm