CheckOps
Roborazzi
Roborazzi is an Apache-2.0 Android screenshot testing library that captures screenshots in JVM tests using Robolectric Native Graphics, supporting interactions, Compose and Espresso-style flows.
- Mobile
- Android
- Kotlin
- Open source
- Free
- Snapshot Testing
- Visual Testing
- End-to-end & functional
- Prototype & UX testing
- Unit testing
- Integration testing
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Roborazzi aims to “make JVM Android integration tests visible”. It captures screenshots during Robolectric-based JVM tests, using Robolectric Native Graphics (RNG, introduced in Robolectric 4.10) to render real Android graphics on the JVM. Its README explains why this matters: JVM tests run on a developer’s machine or CI without the flakiness of device environments, while screenshots catch visual problems faster than many assertions.
Because Roborazzi runs inside Robolectric, tests can interact with the UI before capturing, for example clicking with Espresso or Compose testing APIs and then calling captureRoboImage(). That differs from Paparazzi, which focuses on rendering static screens; the README includes a comparison. Gradle tasks record (recordRoborazziDebug), compare (compareRoborazziDebug) and verify (verifyRoborazziDebug) screenshots, with comparison images and reports. It supports Compose, views, multiple device qualifiers and Compose Multiplatform previews. The project is very active; version 1.78.0 was released on 8 November 2026.
The source code is at takahirom/roborazzi on GitHub under the Apache-2.0 licence, with about 1,100 stars; the most recent commit was on 11 November 2026.
Features
- Interactive screenshots: Click and navigate before capturing.
- Robolectric Native Graphics: Real rendering on the JVM.
- Record, compare and verify: Gradle tasks with diff reports.
- Compose and views: Works with both UI toolkits.
Pros
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 11 November 2026.
Cons
- Robolectric dependency: Inherits Robolectric setup and limits.
- Rendering differences: May differ slightly from physical devices.
Usage and Links (Example)
@RunWith(AndroidJUnit4::class)
@GraphicsMode(GraphicsMode.Mode.NATIVE)
class CheckoutScreenshotTest {
@get:Rule val composeRule = createAndroidComposeRule<ComponentActivity>()
@Test
fun checkoutAfterTap() {
composeRule.setContent { CheckoutScreen() }
composeRule.onNodeWithText("Apply coupon").performClick()
composeRule.onRoot().captureRoboImage()
}
}
./gradlew recordRoborazziDebug
./gradlew verifyRoborazziDebug
Resources:
Pricing
Roborazzi is free and open source under the Apache-2.0 licence.
Recommended for?
- Android teams using Robolectric who want visual regression tests.
- Teams needing screenshots after interactions.
Conclusion
Roborazzi brings interactive, JVM-based screenshot testing to Android, a natural complement to Robolectric suites.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Roborazzi side by side.
PPaparazziPaparazzi is Cash App's Apache-2.0 Android library for rendering application screens without a physical device or emulator, enabling fast screenshot tests on the JVM.Compare with Roborazzi
RRobolectricRobolectric is an MIT-licensed Android unit testing framework that runs tests in a simulated Android environment inside the JVM, routinely 10x faster than cold-started emulators, supporting 14 Android versions from API 24 to 37.Compare with Roborazzi
JJetpack Compose UI testingJetpack Compose's testing APIs (ui-test-junit4) let Android developers find, assert on and interact with composables through semantics, using createComposeRule on devices or with Robolectric on the JVM.Compare with Roborazzi
EEspressoEspresso is an Android testing framework for writing concise, beautiful, and reliable UI tests that synchronize automatically with the application's UI.Compare with Roborazzi
SSnapshotTesting (Point-Free)SnapshotTesting is Point-Free's MIT-licensed snapshot testing library for Swift, snapshotting views, view controllers and any value as images, text, JSON and more, with XCTest and Swift Testing support.Compare with Roborazzi
KKaspressoKaspresso is Kaspersky's Apache-2.0 Android UI testing framework built on Espresso and UI Automator, adding flaky-test protection, a Kotlin DSL, Compose support, ADB access, detailed reports, Allure and Robolectric support.Compare with Roborazzi