SuperAPI AI 工具集

python-pytest

测试与质量

查看项目

更新于 10-16 06:50

技能介绍

用途:为编写、评审和修复 Python pytest 测试提供一套纪律性规则,共 15 条,分 5 类并按影响程度排序。规则命中只是信号而非判决,多数规则是针对新测试的设计偏好,评审或改动稳定套件前应先查看规则的影响级别。判断单位是测试所守护的契约:失败是否有意义。

主要能力与分类:

  1. 测试价值(HIGH,value-):value-observable-contracts 提交的测试应保护具名行为,删除执行探针;value-independent-oracles 期望值独立推导,不得重跑实现公式;value-one-behavior-per-test 拆分独立失败的阶段,合并重复覆盖。
  2. 确定性(HIGH,determinism-):determinism-sync-not-sleep 用事件/屏障加有失败边界的超时,不用 sleep 或耗时阈值;determinism-no-flake-masking 不用重跑插件、放宽超时或间歇性 xfail,应修复竞态;determinism-strict-xfail 使用 xfail(strict=True),意外通过即失败。
  3. Fixture 与隔离(MEDIUM-HIGH,fixtures-):fixtures-narrowest-scope 默认函数作用域,仅对昂贵不可变设置放宽;fixtures-restore-global-state 用 monkeypatch 处理环境变量、工作目录和属性,缺失变量也要恢复,失败时仍执行清理;fixtures-canonical-objects 用生产构造函数生成 fixture,不用手猜字典,构造函数本身被测时用原始输入。
  4. Mock(MEDIUM-HIGH,mock-):mock-stable-boundaries 伪造不拥有的传输层,运行自己拥有的代码,避免 mock 同义反复;mock-patch-where-used 在名称被查找的命名空间打补丁,而非定义处;mock-assert-wire-format 在兼容边界断言序列化字节/字符串,而非 Python 意图。
  5. 结构与执行(MEDIUM,structure-):structure-parametrize-partitions 用例是契约上不同的分区且期望值独立,需守护生成用例集;structure-unique-module-names 组合套件中测试模块导入标识不冲突;structure-plugin-hygiene 自动加载是合理默认,出现插件漂移时显式化接口。

使用方式:逐条阅读规则文件(如 rules/value-observable-contracts.md、rules/mock-patch-where-used.md),每条含 frontmatter 影响级别、简要说明、错误示例、正确示例及可选边界说明;完整编译指南见 AGENTS.md。应用规则前应打开规则文件查看反向信号(When ... / Scope: / Exception ...),确认何时不适用。

适用场景:编写新测试或 fixture;评审测试文件的价值、隔离与确定性;调试不稳定、顺序依赖或假绿测试;配置 pytest 及其插件。

限制:规则命中是信号而非结论;多数规则面向新测试,不应据此搅动稳定套件。资料未提供具体安装命令、版本要求、收费或平台信息。