← ClaudeAtlas

python-testinglisted

【Python测试】Python 测试完整指南:pytest、mock/patch、参数化、fixtures、异步测试、覆盖率。 触发时机: - 用户要求"写测试"、"Python测试"、"pytest" - 需要 mock/patch 外部依赖 - 需要参数化测试或 fixtures - 需要测试覆盖率报告 提供完整的测试策略和代码示例。
afine907/skills · ★ 0 · Testing & QA · score 75
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