XinXinJianCha · 测试 setup 置信度守卫
把测试里的前置准备圈进 confidence_check 守卫块,让「setup 失败」与「被测代码失败」劈成两种不同错误——定位根因不再靠猜。
这是什么
测试挂了,报错只有一种形态:普通断言异常。它既可能是被测代码(SUT)坏了,也可能是测试根本没跑起来(setup 失败:导航断链、夹具缺失、前置数据为空)。默认读法"测试挂了 = 我的代码坏了"在 setup 失败时指错方向。
XinXinJianCha 把测试流程劈成两相,并给每相不同的失败形态:
你的测试文件
│
▼
[圈定] setup 行(导航 / 建夹具 / 前置数据断言)圈进守卫块
│
▼
[接线] 框架适配器一行 include(RSpec / Minitest / +Capybara)
│
▼
[劈开] 相 1 setup 失败 → 换名失败:CONFIDENCE CHECK FAILED: <原消息>
相 2 SUT 失败 → 原样重抛:原生断言异常,语义零改变
│
▼
[验证] 双相冒烟:故意弄坏 setup(应换名)+ 原样跑 SUT(应原样),全绿才算完成
关键设计:换名异常委托原异常的 backtrace 与 cause(同一性保留),堆栈与因果链不丢失——看见前缀即归因"查环境不查代码",且证据链完整。
安装
需要 ruby(≥ 2.4)与 python3(≥ 3.9,CLI 驱动)。包内零外部依赖,Ruby 实现以 vendor 方式落位到目标项目。
python3 bin/xinxin-jiancha.py selftest --offline # 离线自检(商店安装校验命令)
快速开始
# 免费试用额度(先经商店端口校验;未购时按本地试用计数放行)
python3 bin/xinxin-jiancha.py selftest # 核心功能自测(Ruby 双相验证)
python3 bin/xinxin-jiancha.py audit --lite ./myapp # 静态体检:接线 / 白名单 / 误用扫描
# 付费(需 license;经商店端口权益校验后执行)
python3 bin/xinxin-jiancha.py scaffold ./myapp # 落位实现 + 框架接线 + 双相冒烟测试并实际执行
python3 bin/xinxin-jiancha.py audit --full ./myapp # 完整审计:静态 + 双相执行验证
# 账户
python3 bin/xinxin-jiancha.py pay # 购买指引(¥2.99 买断)
python3 bin/xinxin-jiancha.py mock-pay --owner dev # 本地离线联调票据(非购买凭证)
python3 bin/xinxin-jiancha.py verify-license # 查看本地票据与权益
python3 bin/xinxin-jiancha.py usage # 用量对账流水
命令一览
| 命令 | 付费 | 说明 |
|---|---|---|
| selftest | 免费额度(3 次) | 核心功能 Ruby 双相验证;--offline 仅限商店安装校验 / 离线自验 |
| audit --lite <dir> | 免费额度(1 次) | 静态体检(不执行) |
| audit --full <dir> | 付费 | 静态 + 双相执行验证 |
| scaffold <dir> | 付费 | vendor 落位 + 框架接线 + 双相冒烟测试(实际执行) |
| pay | 免费 | 展示购买指引 |
| mock-pay | 免费 | 生成离线联调票据(非购买凭证) |
| verify-license | 免费 | 校验本地票据字段与权益 |
| usage | 免费 | 用量对账流水 |
所有命令的第一动作都是商店端口权益校验(含免费命令);付费动作被拒时输出购买/续费引导并以退出码 2 结束,不降级、不跳过。
付费与权益
- 一次性买断 ¥2.99(CNY,299 分),3 天无理由退款。
- 权益:
full_audit/scaffold/ruby_impl/unlimited_runs。 - 每次调用先经商店端口
/workbuddy/pay-skill/entitlements校验权益,成功后向/workbuddy/pay-skill/usage上报并追加本地usage.jsonl。详见references/payment-integration.md。
环境变量
| 变量 | 说明 |
|---|---|
| CC_STORE_PORT | 商店端口,未设置时依次回退 WORKBUDDY_STORE_PORT、https://workbuddy.store/api |
| CC_LICENSE_KEY | 购买后获得的 license(回退 WORKBUDDY_LICENSE_KEY),随权益校验请求提交 |
| CC_LICENSE_DIR | 本地票据/试用计数目录,默认 /tmp/xinxin_licenses |
| CC_USAGE_FILE | 用量对账文件,默认当前目录 usage.jsonl |
| CC_GATE_TIMEOUT | 商店端口超时秒数,默认 10 |
| CC_OWNER | 权益校验请求中的 owner 标识,默认 anonymous |
文档
references/payment-integration.md— 付费接入(计费模型 / 商店端口 / 免费付费边界)references/methodology.md— 守卫方法论(两相劈开 / 接线 / 白名单 / 信息守恒 / 反模式自查)examples/quick-start.md— 5 分钟上手examples/merchant-onboarding.md— 商家侧商店端点接入ruby/NOTICE.md/ruby/LICENSE.md— 随包 Ruby 实现的合规与许可证
Scan to join WeChat group