Roborazzi
github.com
What it is
Roborazzi is an open-source library for screenshot testing in JVM-based Android integration tests. It records images, compares them with saved baselines and can fail verification when a screenshot differs. Through Robolectric, Android tests can run as JVM tests without a device or emulator. Capture options include Jetpack Compose nodes, Espresso views, Android Views and Compose lambdas; the library can also create screenshot tests for Compose previews and common Compose Multiplatform previews. It supports Compose Desktop and JVM preview tests, rendering images with the host’s Skia, while Compose Multiplatform iOS support is experimental. Gradle tasks cover recording, comparison and verification, and the project documents GitHub Actions workflows for screenshot checks in CI. An IDE plugin shows test screenshots in IntelliJ IDEA and Android Studio. Optional capabilities include UI-tree JSON output, accessibility checks, animated GIF or APNG capture, and experimental AI image assertions. Roborazzi is free, available on Maven Central and licensed under Apache License 2.0. It has no direct Bazel support, and graphics may render differently across operating systems.
Spec sheet
- Purpose
- Roborazzi is an open-source library for making JVM Android integration tests visible through screenshot testing.Read 8 Oct 2026 · github.com
- Integrations
- Roborazzi is available on Maven Central and provides Gradle tasks for recording, comparing, and verifying screenshots.Read 8 Oct 2026 · github.com
- Security
- The AI assertion documentation advises passing API keys through environment variables rather than hard-coding them in code.Read 8 Oct 2026 · github.com
- License
- The repository identifies Roborazzi as licensed under Apache License 2.0.Read 8 Oct 2026 · github.com
- Accessibility
- The project provides a Roborazzi Accessibility Checks library that integrates accessibility checks with Roborazzi.Read 8 Oct 2026 · github.com
- AI assertions
- An experimental AI-powered image assertion feature has modules for Gemini and OpenAI, and the project also describes manual assertions that can use local or other LLMs.Read 8 Oct 2026 · github.com
- Android testing
- Roborazzi integrates with Robolectric to run screenshot tests as JVM tests without requiring a device or emulator.Read 8 Oct 2026 · github.com
- Animated captures
- Roborazzi can capture GIFs and record UI animations as GIF or APNG; video recording is marked experimental and compare/verify mode does not record or verify it.Read 8 Oct 2026 · github.com
- Bazel support
- The FAQ states there is no direct support for running Roborazzi with Bazel.Read 8 Oct 2026 · github.com
- Capture APIs
- Screenshots can be captured from Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.Read 8 Oct 2026 · github.com
- CI
- The documentation describes integrating Roborazzi with GitHub Actions to store, verify, and compare screenshots.Read 8 Oct 2026 · github.com
- CI integration
- The project documents GitHub Actions workflows for storing screenshots and verifying them in CI.Read 8 Oct 2026 · github.com
- Compose and Views
- Screenshot capture supports Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.Read 8 Oct 2026 · github.com
- Compose previews
- It can generate screenshot tests for Jetpack Compose previews and supports Compose Multiplatform common previews.Read 8 Oct 2026 · github.com
- Desktop support
- Roborazzi supports Compose Desktop and JVM preview screenshot tests, with screenshots rendered using the host's Skia.Read 8 Oct 2026 · github.com
- IDE integration
- Its IntelliJ IDEA and Android Studio plugin displays screenshots from Roborazzi screenshot tests in the IDE.Read 8 Oct 2026 · github.com
- iOS limitation
- On iOS, capture calls require an explicit file path and image output is PNG only, without WebP encoding.Read 8 Oct 2026 · github.com
- iOS support
- Experimental Compose Multiplatform iOS support includes screenshot recording, comparison, verification, and reports.Read 8 Oct 2026 · github.com
- Known platform variation
- The project says graphics libraries can render differently across operating systems and does not guarantee identical screenshot rendering across environments.Read 8 Oct 2026 · github.com
- Limitations
- The project states that Roborazzi has no direct support for running with Bazel.Read 8 Oct 2026 · github.com
- Platform coverage
- The project documents Android, experimental Compose Desktop, and experimental Compose Multiplatform iOS support.Read 8 Oct 2026 · github.com
- Robolectric
- Roborazzi integrates with Robolectric and supports using Hilt in tests.Read 8 Oct 2026 · github.com
- Screenshot testing
- It records screenshots, compares them with saved images, and can fail verification when images differ.Read 8 Oct 2026 · github.com
- UI tree output
- An optional UI tree dump writes a machine-readable JSON sidecar alongside screenshots and is documented for Android/Robolectric, Compose Desktop, and Compose iOS.Read 8 Oct 2026 · github.com
- Visual verification
- Its Gradle tasks record, compare, and verify screenshots, and verification fails when an image differs from its saved baseline.Read 8 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Runs Robolectric screenshot tests without a device or emulator
- Captures Compose, Espresso, Android Views, and Compose lambdas
- Gradle tasks record, compare, and verify screenshots
- Free and licensed under Apache License 2.0
Limits
- No direct support for running with Bazel
- Compose Multiplatform iOS support is experimental
- Graphics can render differently across operating systems
- Video recording is experimental and not verified
Who it suits
Roborazzi suits Android and Compose developers who want screenshot baselines and verification in JVM tests, CI, or supported desktop and iOS workflows. Its experimental platform features and lack of direct Bazel support matter when choosing a setup.
Verdict
Roborazzi offers screenshot capture and baseline verification across Android JVM tests and several Compose workflows. Check its platform limitations and rendering variation against your build environment before adopting it.
Where Specifiction places it
- Visual Regression Testing Software#5 of 268.5
- Visual Testing#4 of 178.5