Roborazzi 是一个在 JVM 上运行的 Android 截图测试库,底层使用 Robolectric Native Graphics,因此截图测试可作为 JVM 单元测试执行,不需要设备或模拟器。它支持普通 Android View、Jetpack Compose(包括 Compose Previews)以及 Compose Multiplatform。
典型流程:先用 ./gradlew recordRoborazziDebug 录制基线图像,再用 compareRoborazziDebug / verifyRoborazziDebug 与基线比较或验证(任务名随 variant 变化,参见构建配置说明)。
主要能力涵盖:用 captureRoboImage 针对 View、Compose、Espresso 编写测试,使用 RoborazziRule 及其选项,配置输出路径与文件命名,以及通过 RoborazziOptions 设置阈值、图像比较器和 dump 模式;捕获测试交互的 GIF 与视频(captureRoboGif、recordRoboVideo / recordScreenRoboVideo、RoboVideoOptions、GIF 与 APNG 输出);UI 树导出(机器可读的 .uitree.json 语义 sidecar 与带标注的 Set-of-Mark 图像,roborazzi.dumpUiTree、uiTreeDumpOptions);GitHub Actions CI 基线存储与 PR 快照比较;基于 ComposablePreviewScanner 从 @Preview 生成截图测试;Compose Multiplatform 目标(iOS、桌面/JVM)截图测试;通过 roborazzi-ai 模块用 AI 模型(OpenAI、Gemini)断言截图内容;以及用 roborazzi.* Gradle 属性配置任务行为、输出目录、文件命名策略和比较报告。还提供 IntelliJ IDEA / Android Studio 插件在 IDE 中查看截图。
限制与更多细节:资料提供了参考文档索引主题,涉及快速上手、构建配置、用法、GIF/视频、UI 树导出、CI、Preview 支持、Compose Multiplatform、AI 断言、Gradle 属性与 FAQ 等,但具体命令参数、选项取值和平台特性支持范围未在资料中展开,暂未提供。