关于 testing-python
面向 Python 3.14+ 项目的测试策略技能,整理 pytest、Ruff、mypy、Playwright 等工具的测试与质量检查用法。
主要功能
- 01使用 pytest 进行单元与集成测试
- 02用 Ruff 检查并格式化代码
- 03通过严格 mypy 执行类型检查
- 04使用 Playwright、Hypothesis 和 Mutmut
适用场景
- 01为 FastAPI 或 Django 后端编写测试
- 02在 CI 中配置 lint、格式化与类型检查
- 03用 Playwright 验证浏览器端流程
- 04通过属性测试和变异测试检查测试质量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill testing-python安装后在 Claude Code 中输入/testing-python确认已加载。
附带文件REFERENCE.md
详细介绍
Python 3.14+ 测试策略
版本: Python 3.14+ | pytest 9.x | Ruff 0.17+ | mypy 2.x | Playwright
Ruff 可替代 Black + isort + Flake8(速度快 10–100 倍)。严格模式的 mypy 可在编译时消除类型错误。
2026 年推荐技术栈
| 类型 | 工具 | 用途 |
|---|---|---|
| 单元/集成 | pytest 9.x | FastAPI/Django 后端测试 |
| Lint + 格式化 | Ruff 0.17+ | 速度比 Black+Flake8 快 10–100× |
| 类型检查 | mypy 2.x 严格模式 | 静态检查 |
| 端到端/浏览器 | Playwright | Web 前端测试 |
| BDD(Gherkin) | pytest-bdd | Given/When/Then 场景 |
| 变异测试 | Mutmut | 测试质量(得分 >= 80%) |
| 基于属性的测试 | Hypothesis | 自动生成测试用例 |
不可妥协的要求
- 覆盖率 >= 80%(在
pyproject.toml中设置--cov-fail-under=80) - mypy 严格模式——不允许存在未经说明的
Any,disallow_untyped_defs = true - CI 中必须使用 Ruff(检查 + 格式化)
- 每个测试都采用 AAA(Arrange-Act-Assert)模式
- 使用 pytest fixtures 进行依赖注入(不使用全局状态)
- 通过 Mutmut 实现变异测试得分 >= 80%
各类测试检查清单
| 类型 | 检查项 |
|---|---|
| 单元测试 | 完全隔离、pytest fixtures、unittest.mock 模拟对象 |
| 集成测试 | FastAPI TestClient / Django Client、测试数据库 |
| 端到端测试 | Playwright sync_api、expect() 断言 |
| 基于属性的测试 | 使用 Hypothesis @given 自动测试边界情况 |
| 变异测试 | mutmut run,合并前得分 >= 80 |
完整详情、代码示例、配置和检查清单:请参阅 REFERENCE.md
评论
支持 Markdown