Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Visual Regression Testing Software
  3. Roborazzi

Roborazzi

What it is

Roborazzi is a free, open-source library for screenshot testing in JVM Android integration tests. It records screenshots, compares them with saved images, and can fail verification when they differ. Through Robolectric, Android screenshot 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 project can generate screenshot tests for Jetpack Compose previews and supports Compose Multiplatform common previews. It also documents Compose Desktop and JVM preview testing, as well as experimental Compose Multiplatform iOS support. Gradle tasks record, compare, and verify screenshots; the library is available on Maven Central and includes documented GitHub Actions workflows for CI. An IntelliJ IDEA and Android Studio plugin displays test screenshots in the IDE. Other listed tools include accessibility checks, machine-readable UI tree output, and GIF capture. Video recording is experimental, and compare or verify mode does not record or verify video. Roborazzi is licensed under Apache License 2.0. The project notes that graphics can differ across operating systems and does not guarantee identical rendering.

For and against

For

  • Android screenshot tests can run without a device or emulator.
  • Captures Compose nodes, Espresso views, Android Views, and lambdas.
  • Gradle tasks record, compare, and verify screenshots.
  • GitHub Actions workflows are documented.
  • Apache License 2.0.

Against

  • No direct support for running with Bazel.
  • Compose Desktop and iOS support are experimental.
  • iOS output is PNG only and requires an explicit file path.
  • Rendering may differ across operating systems.

The verdict

Roborazzi provides screenshot recording and verification for Android JVM tests, with additional Compose support across listed platforms. Account for its experimental platform support and possible operating-system rendering differences when using the comparisons.

Who it suits

Roborazzi suits Android and Compose developers who want screenshot checks in JVM tests or CI. Its experimental desktop and iOS support may be relevant to teams working with those Compose targets.

Plans and prices

Roborazzi

Free

Available on Maven Central · Apache-2.0 licensed

Every plan, in full

On the record

Accessibility
The project provides a Roborazzi Accessibility Checks library that integrates accessibility checks with Roborazzi.github.com · read 8 Oct 2026
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.github.com · read 8 Oct 2026
Android testing
Roborazzi integrates with Robolectric to run screenshot tests as JVM tests without requiring a device or emulator.github.com · read 8 Oct 2026
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.github.com · read 8 Oct 2026
Bazel support
The FAQ states there is no direct support for running Roborazzi with Bazel.github.com · read 8 Oct 2026
Capture APIs
Screenshots can be captured from Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.github.com · read 8 Oct 2026
CI
The documentation describes integrating Roborazzi with GitHub Actions to store, verify, and compare screenshots.github.com · read 8 Oct 2026
CI integration
The project documents GitHub Actions workflows for storing screenshots and verifying them in CI.github.com · read 8 Oct 2026
Compose and Views
Screenshot capture supports Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.github.com · read 8 Oct 2026
Compose previews
It can generate screenshot tests for Jetpack Compose previews and supports Compose Multiplatform common previews.github.com · read 8 Oct 2026
Desktop support
Roborazzi supports Compose Desktop and JVM preview screenshot tests, with screenshots rendered using the host's Skia.github.com · read 8 Oct 2026
IDE integration
Its IntelliJ IDEA and Android Studio plugin displays screenshots from Roborazzi screenshot tests in the IDE.github.com · read 8 Oct 2026
Integrations
Roborazzi is available on Maven Central and provides Gradle tasks for recording, comparing, and verifying screenshots.github.com · read 8 Oct 2026
iOS limitation
On iOS, capture calls require an explicit file path and image output is PNG only, without WebP encoding.github.com · read 8 Oct 2026
iOS support
Experimental Compose Multiplatform iOS support includes screenshot recording, comparison, verification, and reports.github.com · read 8 Oct 2026
Known platform variation
The project says graphics libraries can render differently across operating systems and does not guarantee identical screenshot rendering across environments.github.com · read 8 Oct 2026
License
The repository identifies Roborazzi as licensed under Apache License 2.0.github.com · read 8 Oct 2026
Limitations
The project states that Roborazzi has no direct support for running with Bazel.github.com · read 8 Oct 2026

The review

Roborazzi is a free, open-source screenshot-testing library for Android JVM integration tests, with additional Compose workflows on desktop and iOS. It best suits teams that want visual regression checks inside Gradle and Robolectric tests, especially when device-free execution matters. Its broad capture support is useful, but experimental platforms and cross-operating-system rendering differences make environment discipline essential.

Overview

Roborazzi records screenshots, compares them with saved baselines, and fails verification when an image changes. That turns visual changes into repeatable test outcomes instead of a manual image-by-image review. Robolectric integration lets Android tests run as JVM tests without a device or emulator, and Hilt can be used in those tests.

Gradle tasks cover recording, comparison, and verification, while documented GitHub Actions workflows support storing and checking screenshots in CI. The library is distributed through Maven Central and uses the Apache License 2.0. Baseline consistency remains a real operational concern: graphics libraries can render differently on different operating systems, and identical output across environments is not guaranteed.

Key features

Capture APIs cover Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas. That makes the library practical for projects that mix legacy Views, Espresso-driven screens, and Compose rather than forcing one UI technology.

Roborazzi can generate screenshot tests from Jetpack Compose previews and supports common previews in Compose Multiplatform. Compose Desktop and JVM preview screenshots are rendered with the host's Skia library, which extends coverage beyond Android but also reinforces the need to control rendering environments.

An optional UI-tree dump writes machine-readable JSON beside screenshots for Android/Robolectric, Compose Desktop, and Compose iOS. The separate accessibility-checks library adds accessibility checks to Roborazzi workflows. Animated captures can produce GIF or APNG files; video recording is experimental, and compare/verify mode does not record or verify video.

IntelliJ IDEA and Android Studio plugins display screenshots from Roborazzi tests in the IDE. Experimental AI image assertions include Gemini and OpenAI modules, with manual assertions that can use local or other LLMs. API keys should be supplied through environment variables rather than embedded in source code.

Pricing

Roborazzi — free. The free plan includes the Maven Central distribution and Apache-2.0 licensing. There are no paid tiers, seat charges, screenshot quotas, renewal terms, or trial deadlines to weigh. That is a strong fit for open-source projects and teams that prefer to keep screenshot storage and CI orchestration in their existing tooling, rather than buying a hosted visual-testing service.

Platforms

Documented coverage includes Android, experimental Compose Desktop, and experimental Compose Multiplatform iOS support. Android is the clearest fit because Robolectric enables JVM execution. iOS support includes recording, comparison, verification, and reports, but capture calls require an explicit file path and output is PNG only, without WebP encoding. On every platform, operating-system rendering differences can affect comparisons. Roborazzi has no direct support for running with Bazel, which rules it out for teams whose test pipeline depends on Bazel integration.

Who it's for

Choose Roborazzi if you build Android or Compose interfaces and want visual assertions close to JVM tests, Gradle tasks, and GitHub Actions. It is particularly suitable for teams with mixed Compose and View-based screens, preview-heavy development, or a need for IDE-visible baselines and optional UI-tree data. It is less suitable when Bazel is mandatory, when identical screenshots must be portable across operating systems without environmental controls, or when experimental desktop and iOS behavior is not acceptable.

Pros and cons

Pros

  • Device-free Android testing: Robolectric integration keeps screenshot checks in JVM tests without an emulator.
  • Broad capture coverage: Compose nodes, Espresso views, Android Views, and Compose lambdas support mixed UI stacks.
  • Useful automation hooks: Gradle recording, comparison, and verification tasks fit local and GitHub Actions workflows.
  • Free and open source: There are no plan charges, quotas, or seat limits, and the project uses Apache 2.0.
  • Diagnostic extensions: IDE previews, UI-tree JSON, accessibility checks, and animated GIF/APNG capture add context beyond a single diff.

Cons

  • Rendering can vary by operating system: Baselines and verification may disagree when environments use different graphics libraries.
  • Some platform features are experimental: Desktop and iOS workflows need more caution than the Android path.
  • Bazel is unsupported directly: Bazel-centered teams cannot treat Roborazzi as a drop-in test integration.
  • AI assertions add operational risk: Gemini and OpenAI modules require careful API-key handling and are experimental.
  • iOS output is constrained: Capture requires an explicit path and produces PNG rather than WebP.

Alternatives

For a hosted service with visual and accessibility testing, Happo offers a free tier with 5,000 snapshots per month and Chrome support, while paid plans add service capacity. Pick it when managed infrastructure matters more than a local, open-source Gradle library.

Loki is another free, MIT-licensed open-source option spanning Android, iOS, desktop, web, and self-hosted use; choose it when that broader platform list or Node-based setup fits better.

Percy suits teams wanting hosted visual review with 5,000 free screenshots per month, unlimited users, and unlimited projects. SmartUI is worth considering for hosted testing with a lifetime allotment of 2,000 free screenshots and limited seats. Screenshotbot fits usage-based budgets, charging $0.01 a month per screenshot with 10,000 free screenshots monthly and up to five users. Visual Regression Tracker is a free alternative for teams seeking broad platform and self-hosted coverage. PolyglotPiranha is a free option when its listed API, iOS, desktop, and self-hosted coverage is sufficient. Applitools Ultrafast Grid is the paid choice for large-scale hosted checkpoint testing, with its Starter plan priced at $667 a month when paid annually.

Verdict

Roborazzi is a strong choice for Android and Compose teams that want free, open-source visual verification in JVM and Gradle workflows, with Robolectric removing device and emulator overhead. Look elsewhere if Bazel support, fully stable cross-platform rendering, or a hosted review service is a primary requirement.

Alternatives to Roborazzi

Every alternative, ranked