ワンクリックで
build-screenshot-tests
// A skill for building instrumented screenshot tests in Remote Compose using RemoteScreenshotTestRule.
// A skill for building instrumented screenshot tests in Remote Compose using RemoteScreenshotTestRule.
Ensure KDocs are high quality, concise, active, and explicitly linked to API components.
Use this skill to find Compose feature flags introduced by a specific git user or email and map them to the library version in which they were added.
A skill for building instrumented tests in Remote Compose using GridScreenshotUI.
A skill for creating, amending, formatting, and uploading commits in the AndroidX frameworks/support project
Scaffold a new RemoteCompose wear material3 component with test, sample, and preview
Scaffold a new RemoteCompose remote creation component with test, sample, and preview
| name | build_screenshot_tests |
| description | A skill for building instrumented screenshot tests in Remote Compose using RemoteScreenshotTestRule. |
[!IMPORTANT] AI INSTRUCTION: Do not assume you should use
RemoteScreenshotTestRulefor all tests. If the user asks you to write a screenshot test, you MUST first explicitly ask them: "Would you like me to use theRemoteScreenshotTestRulefor this test?" Proceed with using this skill only if they confirm.
This skill provides guidelines for building screenshot tests in the @compose/remote/remote-creation-compose project.
RemoteScreenshotTestRule is a JUnit rule that allows taking screenshots of Remote Compose components. It handles:
RemoteDocumentPlayer.Test Class Annotations:
Annotate the test class with @MediumTest, @SdkSuppress(minSdkVersion = 35, maxSdkVersion = 35), and @RunWith(AndroidJUnit4::class).
Add the Rule: Define the rule inside the test class.
@get:Rule
val composeTestRule: RemoteScreenshotTestRule by lazy {
RemoteScreenshotTestRule(
moduleDirectory = SCREENSHOT_GOLDEN_DIRECTORY,
context = ApplicationProvider.getApplicationContext(),
matcher = MSSIMMatcher(threshold = 0.999),
)
}
Note: SCREENSHOT_GOLDEN_DIRECTORY is usually defined in the module, e.g., androidx.compose.remote.creation.compose.SCREENSHOT_GOLDEN_DIRECTORY.
RemoteScreenshotTestRuleUse runScreenshotTest and provide a lambda with the Remote Composable content you want to test.
@Test
fun simpleTest() {
composeTestRule.runScreenshotTest {
RemoteBox(
modifier = RemoteModifier.fillMaxSize().background(Color.Red)
)
}
}
You can override profile, layout direction, or offer outer content if needed.
@Test
fun alignByBaseline() {
composeTestRule.runScreenshotTest(profile = TestProfiles.androidXExperimental) {
RemoteColumn(modifier = RemoteModifier.fillMaxSize()) {
RemoteRow(modifier = RemoteModifier.fillMaxWidth()) {
RemoteText(
text = "Large String",
fontSize = 40.rsp,
modifier = RemoteModifier.alignByBaseline(),
)
RemoteText(
text = "Small String",
fontSize = 14.rsp,
modifier = RemoteModifier.alignByBaseline(),
)
}
}
}
}
For testing multiple variations efficiently, you can combine this rule with GridScreenshotUI.
Refer to the build_grid_screenshot_tests skill for detailed instructions on using the grid utility.
MSSIMMatcher(threshold = 0.999) for high-precision matching.moduleDirectory points to the correct golden assets folder.runScreenshotTest lambda, you are in a @RemoteComposable @Composable scope. Make sure to use RemoteModifier and Remote components (e.g. RemoteBox, RemoteText).