SuperAPI AI 工具集

test-log-centralizer

测试与质量

查看项目

更新于 10-15 22:13

技能介绍

用途:该技能是所有测试类技能的依赖组件,为单元测试、集成测试、浏览器测试、编排器、技能、环境搭建与清理等各测试层提供统一的日志路径约定,使它们都写入同一个 <project>/.test-runs/<run-id>/ 文件夹。

主要能力:脚本目录下提供三个 bash 入口。scripts/init-run.sh 用于创建新的运行目录,输出该目录的绝对路径,初始包含 run.log、meta.json、summary.json、streams/、screenshots/。scripts/append-log.sh 用于按层追加 stdout/stderr,每行前缀为 ISO-8601 UTC 时间戳(有 python3 时毫秒精度,否则秒精度),同时 tee 到 streams/all.log 便于实时查看。scripts/finalize-run.sh 用于收尾:合并各流到 run.log,写出最终的 summary.json、manifest.json、run.json,并原子化地把 latest 重新指向最新运行。

使用方式:仅在其他测试技能作为子步骤调用时激活,典型调用方为 auto-test、unit-test-runner、browser-test、integration-test-runner、flaky-detector 或 coverage-reporter。先执行 init-run.sh 获取 RUN 路径,再按层调用 append-log.sh,最后以退出码和统计数据调用 finalize-run.sh。init-run.sh 的 runner 与 command 参数可选,省略时 meta.runner 默认 tbd、meta.command 为空字符串。可选地,在 finalize 前导出 TEST_LOG_RETAIN=1 触发保留清理,等价于直接调用 retain.sh。保留策略为:保留最新 10 个原始运行,接下来 2 个 gzip 压缩(run.log 变为 run.log.gz,删除 streams/ 和 screenshots/,保留 run.json、manifest.json、summary.json、meta.json),更旧的删除,重复执行幂等。

适用场景:仅用于测试运行日志的集中管理。读取或 tail 已有日志属于直接 Read/Grep <project>/.test-runs/latest/run.log,无需本技能;非测试类日志(应用日志、构建输出、lint 输出、部署输出)也不适用。完整 JSON 结构见 references/schema.md,文件夹布局与保留策略见 docs/ARCHITECTURE.md。