bun test 通过内置和自定义报告器支持不同的输出格式。
内置报告工具
默认控制台报告工具
默认情况下,bun test 会以人类可读的格式将结果输出到控制台:
terminal
terminal
点状报告工具
点状报告工具会为通过的测试显示.,并为失败的测试输出完整的错误详情,适用于大型测试套件。
terminal
JUnit XML 报告工具
对于 CI/CD 环境,Bun 可以生成 JUnit XML 报告。这是一种广泛采用的测试结果格式,许多 CI/CD 系统都可以解析,包括 GitLab 和 Jenkins。使用 JUnit 报告工具
要生成 JUnit XML 报告,使用--reporter=junit 标志并配合 --reporter-outfile 指定输出文件:
terminal
通过 bunfig.toml 配置
你也可以在bunfig.toml 中配置 JUnit 报告工具:
bunfig.toml
JUnit 报告中的环境变量
JUnit 报告工具会将环境信息作为<properties> 包含在 XML 输出中,因此你可以了解测试运行所对应的环境和提交。
在可用时,它会包含以下环境变量:
当前限制
JUnit 报告工具不包含:- 各个测试的
stdout和stderr输出 - 每个测试用例的精确时间戳字段
GitHub Actions 报告工具
bun test 会检测其是否在 GitHub Actions 中运行,并直接向控制台输出 GitHub Actions 注释。除了安装 Bun 并运行 bun test 外,无需进行其他配置。
有关 GitHub Actions 工作流的示例,请参阅 CI/CD 集成。
自定义报告工具
你可以使用 Bun 针对 WebKit 检查器协议的测试专用扩展来实现自定义测试报告器,从而实时报告测试执行的详细信息。测试检查器协议
Bun 使用两个自定义域扩展了标准 WebKit 检查器协议:- TestReporter:报告测试发现、开始和结束事件
- LifecycleReporter:报告测试执行期间的错误和异常
关键事件
自定义报告器可以监听以下事件:TestReporter.found:测试被发现时触发TestReporter.start:测试开始运行时触发TestReporter.end:测试完成时触发Console.messageAdded:测试运行期间控制台有输出时触发LifecycleReporter.error:发生错误或异常时触发