Skip to main content

screenshot-tests

Use when writing or running Paparazzi screenshot tests in stripe-android — covers PaparazziRule setup, recording/verifying commands, and test structure

インストールへ移動

ソース情報

リポジトリ
stripe/stripe-android
ソースの最終更新活動
2026年7月15日 12:58
検出された SKILL.md の言語
英語
スター
1,537
フォーク
736

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
screenshot-tests
description
Use when writing or running Paparazzi screenshot tests in stripe-android — covers PaparazziRule setup, recording/verifying commands, and test structure
# Screenshot Tests (Paparazzi) We use [Paparazzi](https://github.com/cashapp/paparazzi) for screenshot testing via the `screenshot-testing` module. ## Recording Screenshots Record (update) screenshots after UI changes: ```bash ./gradlew :<module>:recordPaparazziDebug ``` To record a specific test class only: ```bash ./gradlew :<module>:recordPaparazziDebug --tests "com.stripe.android.package.MyScreenshotTest" ``` Wildcard form also works: ```bash ./gradlew :<module>:recordPaparazziDebug --tests "*.MyScreenshotTest" ``` New or updated screenshots are written to `<module>/src/test/snapshots/images/` and added to the Git staging area. ## Verifying Screenshots Verify screenshots match recorded baselines (used on CI): ```bash ./gradlew :<module>:verifyPaparazziDebug ``` Failure diffs are written to `<module>/out/failures` (git-ignored). ## Test Class Structure ```kotlin internal class MyScreenshotTest { @get:Rule val paparazziRule = PaparazziRule( SystemAppearance.entries, // Light/Dark PaymentSheetAppearance.entries, // Default/Custom/Crazy appearances FontSize.entries, // Default/Large font boxModifier = Modifier.padding(horizontal = 16.dp), ) @Test fun testDefault() { paparazziRule.snapshot { MyComposable(/* ... */) } } } ``` - `PaparazziRule` generates all permutations of the config options automatically. - Each test produces one snapshot per permutation (e.g., 12 images for 2 themes x 3 appearances x 2 font sizes). - Snapshots are named `<package>_<class>_<method>[<permutation>].png`. ## Available Config Options | Option | Values | Import | |--------|--------|--------| | `SystemAppearance` | `LightTheme`, `DarkTheme` | `com.stripe.android.screenshottesting` | | `FontSize` | `DefaultFont`, `LargeFont` | `com.stripe.android.screenshottesting` | | `PaymentSheetAppearance` | `DefaultAppearance`, `CustomAppearance`, `CrazyAppearance` | `com.stripe.android.utils.screenshots` | ## Common Mistakes - **Using `-Precord` or other flags** — Paparazzi uses a separate `recordPaparazziDebug` task, not a project property. - **Running `testDebugUnitTest` to record** — this only _verifies_ against existing snapshots; use `recordPaparazziDebug` to update them. - **Forgetting to commit updated snapshots** — recorded images go into `src/test/snapshots/images/` and must be committed.
GitHubで見る