Reporter API
Reporter API 允许你创建自定义测试结果处理器和输出格式器。此接口是实验性的,在未来的版本中可能会发生变化。
注意:使用示例和配置指南,请参阅 报告器指南。
使用自定义报告器
通过实现 Reporter 接口来创建自定义报告器:
在配置中使用自定义报告器:
接口概览
Reporter 接口为测试执行提供生命周期钩子。每个钩子在测试运行期间的具体时间点被调用。
重要提示:有关最新的接口定义和完整类型签名,请参考 源代码。
钩子类别
- 文件级钩子:
onTestFileStart、onTestFileReady、onTestFileResult - 套件级钩子:
onTestSuiteStart、onTestSuiteResult - 用例级钩子:
onTestCaseStart、onTestCaseResult - 运行级钩子:
onTestRunStart、onTestRunEnd、onUserConsoleLog、onExit
基本接口结构
从 v0.12.0 开始,除了 CLI 异常退出,Rstest 还会在 reporter 所属 context 释放时调用 onExit,包括 run、list 或 merge 正常结束、watch close 和启动失败。list context 目前不会 attach reporter,因此没有可调用的 reporter Hook。可以用 onExit 释放 stream、renderer 等资源。Hook 抛出的错误不会覆盖操作本身的结果或错误。
Reporter result 上可以读取 meta 字段。通过 context.task.meta 写入的可 JSON 序列化运行时 metadata 可以在 onTestCaseResult 收到的 TestResult 上读取。通过 hooks 的 ctx.meta 写入的 metadata 可以在 onTestSuiteResult 收到的对应 suite result 上读取,文件级 hook metadata 可以在 onTestFileResult 的 TestFileResult.meta 上读取。