~/talk

Android Screenshot Testing on Autopilot

Talkat droidcon London 2025 · 2025-10-30..10-31· [android, testing]
speakerdeck:cagdasc
slides:none on file

Converts Jetpack Compose previews into runnable screenshot tests by using a KSP code generator that finds @Preview functions, emits JUnit 5 + Paparazzi test classes, and a custom Gradle plugin that mounts the generated folder as a test source set, injects compileOnly test deps, runs the record/verify tasks and then removes the deps. Implementation handles preview parameters (named via a PreviewParameterProvider), throws on duplicate names, and runs in real projects — producing over 1,000 PNGs with zero manual test code and ~6–8 minute full generation.

AI-written summary · about

  1. 0:00Automated screenshot testing
  2. 1:09Manual testing problems
  3. 4:03Manual to automated workflow
  4. 7:36Test source set challenge
  5. 9:22Live demo setup
  6. 15:14Dependencies and annotations
  7. 16:59Gradle plugin compilation
  8. 20:33Auto-generating screenshot tests
  9. 23:00Preview parameters handling
  10. 27:00Results and impact
  11. 28:45Advanced config improvements
  12. 31:41CI integration
  13. 37:20Paparazzi future and Google's approach
  14. 40:44Incremental builds
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.