Skip to main content
Reporter 面向当前 Invocation。它可以把当前运行的结果发送到外部观察或分析系统,但它不拥有 Record,也不能替代 Record 的 reader、writer 或 RecordAttachment。

Reporter 适合什么

把 Reporter 配在需要观察的运行范围,让它处理当前进程可见的结果。外部系统可以接收运行摘要、Attempt 结果或链接,但要读取完整业务事实时,应使用 receipt 的 runIds 重新打开停稳 Record。 Reporter 不能:
  • 把外部系统的数据当作 Record 的业务值;
  • 用外部上报替代 Verdict、Usage、断言或诊断 Attachment;
  • 让后续 showview 或静态报告从外部系统取数;
  • 从外部系统把结果写回 Record。

在 CI 中使用 JUnit

JUnit 是最直接的外部集成方式:
NiceEval 以原子方式写出该文件,CI 平台读取它来显示注解和测试结果。它只描述这次调用的交付格式,不会成为 Record 的事实 owner。

使用 JSON 与 receipt

--json 输出当前进程的 NDJSON。最后一条 receipt 包含 invocationIdrunIds、开始时间、结束时间和 completion。外部自动化可以保留 receipt,再根据 runIds 选择要查看的 Report。
不要把 progress 或 diagnostic 行当作长期结果格式。它们服务当前 Invocation,完整业务事实属于停稳 Record。

接入外部系统时的原则

  1. 让外部上报只消费当前 Invocation 已知的信息。
  2. 将凭据保留在运行变量中,不写入输出内容。
  3. 用退出状态处理 CI 门禁。
  4. 用 receipt 的 runIds 把外部工作流关联到可查看的结果。
  5. 需要分享页面时,使用 view --out 导出静态报告站。
有关 CI 命令与 JUnit,请阅读CI 集成