Files
letro-android/docs/screenshot_testing.md
Benoit Marty ce3e554091 Add Doc
2023-01-18 15:20:32 +01:00

1.7 KiB

Screenshot testing

Overview

  • Screenshot tests are tests which record the content of a rendered screen and verify subsequent runs to check if the screen renders differently.
  • ElementX uses Paparazzi to render, record and verify Composable. All Composable Preview will be use to make screenshot test, thanks to the usage of Showkase.
  • The screenshot verification occurs on every pull request as part of the tests.yml workflow.

Setup

  • Install Git LFS through your package manager of choice (brew install git-lfs | yay -S git-lfs).
  • Install the Git LFS hooks into the project.
# with element-android as the current working directory
git lfs install --local
  • If installed correctly, git push and git pull will now include LFS content.

Recording

  • ./gradlew recordPaparazziDebug
  • Paparazzi will generate images in :tests:uitests/src/test/snapshots, which will need to be committed to the repository using Git LFS.

Verifying

  • ./gradlew verifyPaparazziDebug
  • In the case of failure, Paparazzi will generate images in :tests:uitests/out/failure. The images will show the expected and actual screenshots along with a delta of the two images.

Contributing

  • Creating Previewable Composable will automatically creates new screenshot tests.
  • After creating the new test, record and commit the newly rendered screens.
  • ./tools/git/validate_lfs.sh can be run to ensure everything is working correctly with Git LFS, the CI also runs this check.