SuperAPI AI 工具集

python3-test-design

编程与开发

查看项目

更新于 10-15 22:40

技能介绍

用途:为 Python 3.11+ 项目设计 pytest 测试架构,在共享的 Python 开发规范下补充 pytest 特有的边界与 fixture 指导,不另立测试哲学。仓库既有要求与项目门禁优先。

主要能力:按决策顺序先确认受支持行为、契约、调用方、既有保护与失败后果,再决定保留哪些测试;区分当前变更的直接验证与长期回归保护;优先选择仍能区分关键失败的最高稳定契约边界;单元测试保持 TDD 规模,不镜像私有辅助函数、分支、常量或偶然调用次数。

边界选择:小边界自身稳定、驱动下一步 TDD 行为或更廉价地区分重要故障时用单元/函数测试;保证依赖组件组合(数据库、文件系统、协议、序列化、打包启动、事务、持久化、授权、重试、恢复、多步状态转换)时用集成/契约/生命周期测试;不变量跨大量输入或动作序列时用 Hypothesis 属性/状态测试;用户可见工作流需要场景语言或可读验收证据时用 BDD/验收测试,但不要仅为重复已有契约测试而加 BDD 层。

fixture 与替身:用最小 fixture 结构保持场景、动作、观察与清理清晰;重复设置多时用工厂/构建器,不搭建复刻生产复杂度的并行 fixture 框架;在真实接缝处使用 fake/mock,说明替身移除了哪些观察,不要 mock 掉测试要挑战的机制,重要集成假设尽量用真实依赖验证替身。

覆盖率与变异测试:覆盖率是度量而非通用质量分。尊重仓库已有的 fail_under 或等效门禁;无门禁时启用分支/缺失行报告,但不发明百分比;检查未覆盖的变更行为风险,不为提高数字而造测试;不从测试数量或单元/集成/e2e 比例推断套件价值。变异测试仅在能实质增强重要逻辑信心且变异触及预期行为观察时使用,保留项目已有变异门禁,否则不发明变异分数目标;被导入/收集/设置失败杀死的变异体不能证明目标测试检测到相关缺陷。

测试组织:遵循项目现有布局;新 pytest 项目仅在区分能改善执行或归属时分离边界,例如 tests/ 下 conftest.py、unit/、integration/、e2e/,不要为满足金字塔形状而创建目录或类别。

限制:资料未提供具体收费、平台支持范围或效果数据;示例命令与配置需按项目实际情况调整。