Appearance
Everything Claude Code 的 python-testing Skill 提供了生产级 Python 测试体系的全流程自动化支持,包括 pytest 测试驱动开发(TDD)、覆盖率门槛、Fixtures、参数化测试、Mock/patch、异步测试等核心能力。通过 Skill 激活,AI 助手可自动生成高质量测试代码、配置测试基础设施、保障 80%+ 覆盖率,极大提升 Python 项目的开发效率和代码质量,适用于新项目、重构、CI/CD 集成等多场景。
Everything Claude Code Python Testing Skill:pytest TDD、Fixtures、参数化测试与覆盖率要求
在现代 Python 项目中,自动化测试不仅是保证代码质量的基础,更是持续交付、团队协作和 AI 编程助手高效落地的关键环节。Everything Claude Code 的 python-testing Skill,正是为此而设计:它将 pytest 测试框架的最佳实践、TDD 流程、覆盖率要求、Fixtures、Mock、参数化测试等能力,深度集成到 AI 编程助手的 Skill/Agent 体系中,让测试驱动开发成为 AI 代码生成与评审的默认模式。
本指南将结合生产实战,详细讲解 python-testing Skill 的激活场景、操作流程、输出示例、与其他 Skill/Agent 的协作关系,以及如何在实际项目中用好它。
1. python-testing Skill 能解决什么问题?
传统做法的痛点:
- 测试代码与业务代码分离,容易遗漏、风格不统一
- 手动补全测试,覆盖率低,难以发现边界和异常分支
- Mock、参数化、异步测试等高级用法实现复杂、易出错
- 难以在 CI/CD 中强制覆盖率门槛,测试组织混乱
Skill 赋能后:
- AI 自动建议并生成 pytest 风格的测试代码,强制 TDD 流程(红-绿-重构)
- 自动配置 80%+ 覆盖率门槛,关键路径 100% 覆盖
- 支持 Fixtures、Mock、参数化、异步测试等全场景,减少重复代码
- 自动生成 pytest.ini/pyproject.toml、conftest.py 等配置,测试结构清晰
- 可与 Code Reviewer Agent、TDD Guide Agent 等协作,实现代码-测试-评审-覆盖率一体化
2. 什么时候激活 python-testing Skill?
- 新功能开发:每写一段新业务代码,AI 会建议先写测试(TDD),并自动生成红色用例
- 重构/修复 Bug:Skill 可分析变更影响,补全缺失测试,确保回归
- 测试基础设施搭建:自动生成 pytest 目录结构、配置文件、基础 Fixtures
- CI/CD 集成:自动插入覆盖率检查,未达标阻断合并
- 代码评审/覆盖率审计:配合 Code Reviewer,自动标记未覆盖分支和风险点
3. python-testing Skill 使用流程(Step by Step)
Step 1. 激活 Skill(AI 自动/手动触发)
- 在 Claude Code、Codex、Cursor 等支持 ECC 的 IDE/CLI 中,打开 Python 代码文件或 PR
- 输入需求/变更描述,AI 检测到需写测试时自动激活 python-testing Skill
- 也可手动指定“为本模块生成 pytest 测试并保证 80% 覆盖率”
Step 2. AI 生成/补全测试代码(TDD 流程)
- RED:AI 先生成一个失败的 pytest 测试用例,覆盖目标行为或边界
- GREEN:根据测试反馈,自动补全最小可通过的实现
- REFACTOR:建议重构代码/测试,保证可维护性
示例:
python
# 1. RED:生成测试
def test_add_numbers():
result = add(2, 3)
assert result == 5
# 2. GREEN:补全实现
def add(a, b):
return a + b
# 3. REFACTOR:结构优化(如类型注解、异常处理等)Step 3. 自动配置覆盖率与测试结构
- AI 自动生成/更新 pytest.ini 或 pyproject.toml,强制覆盖率门槛
- 生成 tests/ 目录、conftest.py、基础 Fixtures
示例 pytest.ini:
ini
[pytest]
addopts = --cov=mypackage --cov-report=term-missing --cov-report=html --strict-markers
testpaths = tests
markers =
slow: marks tests as slow
integration: marks tests as integration tests
unit: marks tests as unit testsStep 4. 高级测试模式(Fixtures、参数化、Mock、异步)
- Fixtures:自动抽取重复 setup/teardown 逻辑,生成可复用的 pytest fixture
- 参数化测试:AI 自动识别输入组合,生成 @pytest.mark.parametrize 用例
- Mock/Patch:为外部依赖、API、数据库等生成 Mock 代码,避免真实调用
- 异步测试:识别 async 函数,自动生成 pytest-asyncio 测试模板
示例:参数化与 Fixture
python
import pytest
@pytest.fixture
def sample_user():
return {"name": "Alice", "age": 30}
@pytest.mark.parametrize("input,expected", [
("hello", "HELLO"),
("world", "WORLD"),
])
def test_uppercase(input, expected):
assert input.upper() == expected
def test_user_age(sample_user):
assert sample_user["age"] == 30Step 5. 运行与验证
- 一键运行所有测试,自动输出覆盖率报告
- 覆盖率低于 80% 或关键路径未覆盖,AI 自动生成补全建议或阻断合并
运行示例:
bash
pytest --cov=mypackage --cov-report=html生成 HTML 报告,标记未覆盖代码。
Step 6. 输出与协作
- Skill 输出包括:测试代码、conftest.py、pytest 配置、覆盖率报告、补全建议
- 可与 TDD Guide Agent 协作,强制测试先行
- 与 Code Reviewer Agent 联动,自动审查测试质量和覆盖率
- 支持与 Verification Loop Skill 结合,实现端到端自动验证
4. 输出示例
AI 生成的测试代码:
python
import pytest
@pytest.mark.parametrize("a,b,expected", [
(1, 2, 3),
(0, 0, 0),
(-1, 1, 0),
])
def test_add(a, b, expected):
assert add(a, b) == expected
@pytest.fixture
def db():
db = Database(":memory:")
db.create_tables()
yield db
db.close()
def test_db_insert(db):
db.insert({"name": "Alice"})
result = db.query("SELECT * FROM users WHERE name='Alice'")
assert len(result) == 1AI 生成的 pytest.ini:
ini
[pytest]
addopts = --cov=mypackage --cov-report=html --strict-markers
testpaths = tests覆盖率报告输出:
---------- coverage: platform linux, python 3.10 ----------
Name Stmts Miss Cover Missing
--------------------------------------------
mypackage.py 20 2 90% 45-46
--------------------------------------------5. python-testing Skill 与其他 Agent/Skill 的协作
- 与 TDD Guide Agent:自动检测未覆盖路径,强制 TDD 流程,生成测试补全建议
- 与 Code Reviewer Agent:审查测试代码风格、边界用例、Mock 合理性、覆盖率达标
- 与 Verification Loop Skill:集成到端到端验证流程,实现代码-测试-评审闭环
- 与 python-patterns Skill:结合 Pythonic 代码规范,提升测试可读性与健壮性
6. 常见问题与注意事项
如何保证覆盖率目标?
Skill 默认生成覆盖率报告,未达 80% 自动补全测试或阻断合并。关键路径(如核心算法、异常分支)要求 100% 覆盖。如何处理外部依赖/异步/数据库等复杂场景?
Skill 自动为外部依赖生成 Mock/patch,异步代码生成 pytest-asyncio 测试,数据库等资源用 fixture 隔离 setup/teardown,保证测试独立可靠。测试目录结构和配置如何自动化?
AI 会自动生成 tests/ 目录、conftest.py、pytest.ini/pyproject.toml,按单元、集成、E2E 分类组织,便于 CI/CD 集成和团队协作。如何与其他语言/框架的测试体系协作?
Everything Claude Code 支持多语言测试 Skill(如 C++ Testing Skill、Kotlin Testing Skill),可实现跨栈一体化测试与覆盖率门控。
FAQ
Q: Skill 会自动补全所有测试用例吗? A: Skill 会优先覆盖主流程、边界和异常分支,复杂业务需结合开发者补充特定场景,但 AI 会持续给出覆盖建议。
Q: 如何在 CI/CD 中强制覆盖率门槛? A: Skill 自动生成 pytest 配置,集成 --cov 选项,覆盖率未达标时可配置为阻断合并或发布。
Q: 支持哪些 Mock 和参数化场景? A: 支持 unittest.mock 的 patch、Mock、PropertyMock、异步 Mock、参数化 fixture、@pytest.mark.parametrize 等全场景,适用于 API、数据库、文件、网络等多种依赖。
通过 python-testing Skill,AI 编程助手用户可以在 Python 项目中实现高效、系统、可持续的自动化测试体系,极大提升代码质量和交付效率。更多 ECC 测试与自动化能力可参考 Everything Claude Code 完全指南 与 Verification Loop Skill。