SuperAPI AI 工具集

pact-coverage

测试与质量

查看项目

更新于 10-16 03:14

技能介绍

用途:Pact Coverage 用于衡量消费者的 pact 文件是否覆盖了消费者真正使用到的提供方接口。它以「消费者过滤后的提供方 OAS」为分母,避免将未被调用的提供方端点误判为缺口。流程为 ripwire 扫描消费者代码发现调用的路径/方法,过滤提供方 OAS,再将 Pact 文件与过滤后 OAS 对比得出缺口。

主要能力:报告五个维度——1 路径/方法、2 状态码、3 请求体必填字段、4 响应体必填字段、5 消费者代码状态分支(可选,需传 --consumer-root)。默认排除 500、501、502、503,3xx、5xx、通配码与 default 始终跳过。当 OAS 有属性但无 required[] 时,第 3、4 节显示 N/A 并给出警告。若 spec 为 AsyncAPI 3.x 文档,则自动切换为消息 Pact 覆盖测量。脚本支持退出码:0 全覆盖、1 有缺口、2 错误。

使用方式:需先安装 ripwire;交互使用需连接 ripwire MCP,命令为 claude mcp add ripwire -- ripwire --mcp,或在 mcp.json 中配置。运行前需解析三项输入:consumer_root、spec_path、pact_glob,缺一将硬停止报错。不得捏造 OAS 或 Pact 文件,只能使用磁盘、URL、PactFlow 或由 oas-generator 生成的真实规范。CI 用法示例:uv run scripts/build_filtered_oas.py --consumer-root ./consumer-src --output consumer-routes.json;再运行 uv run scripts/parse_pact_coverage.py --spec provider-openapi.yaml --pacts "pacts/*.json" --consumer-routes "$(cat consumer-routes.json)"。异步模式需自行传入 --consumer-channels。

适用场景:消费者契约测试覆盖度审计、CI 中检测 API 操作与字段遗漏、AsyncAPI 消息契约覆盖检查。

限制:不修改文件;不自动选择多个 spec 或 pact,需用户确认;AsyncAPI 模式下 ripwire 路由发现不适用;生成规范对复杂 schema 可能不完整;安装与具体平台支持等细节资料未提供。