SuperAPI AI 工具集

mem0-test-integration

测试与质量

查看项目

更新于 10-15 15:05

技能介绍

用途

mem0-test-integration 用于验证由 /mem0-integrate 生成的 Mem0 集成。它在同一工作区、同一功能分支上运行,采用松耦合设计——速度快,能捕获编译和运行时错误,但不捕获逻辑错误。

主要能力

  • 前置条件检查:要求仓库根目录存在 .mem0-integration/ 目录,其中 product.json、goal.md、plan.md 可读且一致;当前分支名以 mem0-integrate/ 开头;工作树干净;集成使用的 API key 在环境中可用(Platform 用 MEM0_API_KEY,OSS 用 OPENAI_API_KEY)。
  • 依赖安装:按 product.json 指定的语言执行安装命令(Python 用 pip,TypeScript/JavaScript 用 npm/pnpm/yarn)。
  • 静态检查:包括导入检查、版本检查、类型检查(TS)、Lint 检查、模块级提前初始化检查。
  • 单元测试两遍:Pass A 关闭功能开关运行原有测试套件,必须全部通过;Pass B 打开功能开关运行完整测试套件。
  • 冒烟测试:执行真实 API 调用的最短往返流程,使用一次性随机 user_id 并清理。
  • 端到端测试:按 plan.md 中的 E2E 配方启动应用、触发写入和读取路径,并验证 read_assert。
  • 生成评分卡:输出 .mem0-integration/scorecard.md 和 scorecard.json。

使用方式

调用方式:

/mem0-test-integration                       # 交互式,全部步骤
/mem0-test-integration --ci                  # 非交互式
/mem0-test-integration --skip-smoke          # 不调用 API,不做 E2E
/mem0-test-integration --skip-e2e            # 仅单元测试 + 冒烟测试
/mem0-test-integration --only-smoke          # 仅冒烟测试
/mem0-test-integration --only-e2e            # 仅 E2E(假定依赖已安装)

--skip-* 可叠加使用,--only-* 与其他标志互斥。

适用场景

  • 在 /mem0-integrate 完成后,需要验证集成是否引入回归。
  • 在 CI 中自动运行验证并消费评分卡 JSON。
  • 需要快速确认 SDK 调用能正常工作的场景。

限制

  • 不修改源文件,是只读验证。
  • 不修复损坏的测试;失败的单元测试被视为集成错误的信号。
  • 不进行深层逻辑正确性判断,E2E 只证明“用户之前说的内容后来能返回”,不证明选取了正确的事实、user_id 作用域正确或冲突解决合理。
  • 不自我修复;配对 /mem0-integrate 的默认 --heal 模式消费此评分卡并驱动修复循环。退出码 7 表示非侵入性违规,修复循环必须停止。
  • 不做跨分支比较,评分卡仅反映当前分支。
  • 不针对生产数据运行,冒烟测试使用一次性随机 user_id 并清理。

退出码

  • 0:全部检查通过
  • 1:前置条件失败
  • 2:缺少环境密钥或依赖安装失败
  • 3:静态检查失败
  • 4:单元测试失败(Pass B)
  • 5:冒烟测试失败
  • 6:E2E 测试失败
  • 7:非侵入性违规(Pass A 失败)
  • 8:内部错误

产物

所有产物位于 .mem0-integration/ 下,包括 scorecard.md、scorecard.json、test-stdout-flag-off.log、test-stdout-flag-on.log、smoke-stdout.log、e2e-app.log、e2e-calls.log,每次运行覆盖。评分卡文件不提交,位于 gitignore 中。