Announcement: Simplified Release Strategy for Roborazzi
We're making some changes to our release strategy to enhance your experience. Moving forward, we will be streamlining our versioning system. Instead of maintaining separate alpha/rc/stable versions, we will integrate experimental features directly into stable releases, marked with clear experimental annotations. This approach aims to simplify updates and improve clarity while ensuring you still have access to the latest features and improvements.
We value your input and experience. If you have any thoughts or feedback on this change, please feel free to share them with us on [GitHub Issue #243](takahirom/roborazzi#243).
Fix from 1.8.0-rc-1
Use ComposeTestRule interface instead of concrete AndroidComposeTestRule class.
@GisoBartels, Thank you for your code contribution!
takahirom/roborazzi#241
New Feature from 1.7
Introducing the experimental roboOutputName() function
Streamline the customization of Roborazzi image file names. This utility is especially effective in parameterized tests, allowing for dynamic file naming based on test parameters. For an example of its usage, see the snippet below, which demonstrates generating screenshots before and after UI interactions.
@Test
fun launchScreen() {
// Generates a file named "org.your.pkg.TestClassName.launchScreen_before.png"
onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_before.png")
// Replace with specific actions, e.g., onView(xxx).performClick()
// Generates a file named "org.your.pkg.TestClassName.launchScreen_after.png"
onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_after.png")
}
Tailor your file naming convention in gradle.properties for even more control, such as omitting the package name.
Set roborazzi.record.namingStrategy=testClassAndMethod for a streamlined naming pattern.
Learn more: Roborazzi Documentation
Enhanced Comparison with Grid and Labels 🚀
This update introduces a new grid and label feature, making visual comparisons more intuitive and effective. The grid layout provides a structured view, while labels offer clear identification, streamlining the testing process.
You can use the old style by setting ComparisonStyle to ComparisonStyle.Simple in RoborazziOptions
data class CompareOptions(
...
val comparisonStyle: ComparisonStyle = ComparisonStyle.Grid(),
) {
@ExperimentalRoborazziApi
sealed interface ComparisonStyle {
@ExperimentalRoborazziApi
</tr></table>
Announcement: Simplified Release Strategy for Roborazzi
We're making some changes to our release strategy to enhance your experience. Moving forward, we will be streamlining our versioning system. Instead of maintaining separate alpha/rc/stable versions, we will integrate experimental features directly into stable releases, marked with clear experimental annotations. This approach aims to simplify updates and improve clarity while ensuring you still have access to the latest features and improvements.
We value your input and experience. If you have any thoughts or feedback on this change, please feel free to share them with us on [GitHub Issue #243](takahirom/roborazzi#243).
Fix from 1.8.0-rc-1
Use ComposeTestRule interface instead of concrete AndroidComposeTestRule class.
@GisoBartels, Thank you for your code contribution!
takahirom/roborazzi#241
New Feature from 1.7
Introducing the experimental roboOutputName() function
Streamline the customization of Roborazzi image file names. This utility is especially effective in parameterized tests, allowing for dynamic file naming based on test parameters. For an example of its usage, see the snippet below, which demonstrates generating screenshots before and after UI interactions.
@Test
fun launchScreen() {
// Generates a file named "org.your.pkg.TestClassName.launchScreen_before.png"
onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_before.png")
// Replace with specific actions, e.g., onView(xxx).performClick()
// Generates a file named "org.your.pkg.TestClassName.launchScreen_after.png"
onView(ViewMatchers.isRoot()).captureRoboImage("${roboOutputName()}_after.png")
}
Tailor your file naming convention in gradle.properties for even more control, such as omitting the package name.
Set roborazzi.record.namingStrategy=testClassAndMethod for a streamlined naming pattern.
Learn more: Roborazzi Documentation
Enhanced Comparison with Grid and Labels 🚀
This update introduces a new grid and label feature, making visual comparisons more intuitive and effective. The grid layout provides a structured view, while labels offer clear identification, streamlining the testing process.
You can use the old style by setting ComparisonStyle to ComparisonStyle.Simple in RoborazziOptions
data class CompareOptions(
...
val comparisonStyle: ComparisonStyle = ComparisonStyle.Grid(),
) {
@ExperimentalRoborazziApi
sealed interface ComparisonStyle {
@ExperimentalRoborazziApi
</tr></table>
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps
takahirom-roborazzi
from 1.6.0 to 1.8.0. Updatesio.github.takahirom.roborazzi:roborazzi
from 1.6.0 to 1.8.0Release notes
Sourced from io.github.takahirom.roborazzi:roborazzi's releases.
... (truncated)
Commits
17046b8
1.8.096d1840
1.8.0-rc-2036fbfa
Use ComposeTestRule interface instead of concrete AndroidComposeTestRule classc13682c
1.8.0 for future release1671c6b
1.8.0-rc-126d5c29
Merge pull request #213 from takahirom/takahirom/fix-simple-comparison-image/...e82c106
Fix simple comparison image491e9f8
1.8.0-alpha-6b34bfb8
Merge pull request #206 from takahirom/takahirom/add-text-and-grid-for-compos...6f44dfc
Add comparison style testUpdates
io.github.takahirom.roborazzi
from 1.6.0 to 1.8.0Release notes
Sourced from io.github.takahirom.roborazzi's releases.
... (truncated)
Commits
17046b8
1.8.096d1840
1.8.0-rc-2036fbfa
Use ComposeTestRule interface instead of concrete AndroidComposeTestRule classc13682c
1.8.0 for future release1671c6b
1.8.0-rc-126d5c29
Merge pull request #213 from takahirom/takahirom/fix-simple-comparison-image/...e82c106
Fix simple comparison image491e9f8
1.8.0-alpha-6b34bfb8
Merge pull request #206 from takahirom/takahirom/add-text-and-grid-for-compos...6f44dfc
Add comparison style testDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show