[Testing] Update iOS UITest baseline screenshots for ACES CI environment#33910
Conversation
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This pull request updates iOS UITest baseline screenshots following the ACES CI pool migration (PR #33790). The failures were caused by minor rendering differences between macOS versions (Sequoia/macOS 15 vs Tahoe/macOS 26).
Changes:
- Updated baseline screenshots for 14 iOS test cases to match new ACES CI environment rendering
- Added keyboard cropping for iOS tests to handle keyboard-related visual differences
- Added macOS version checks to ignore tests on macOS < 26 due to known visual differences
Reviewed changes
Copilot reviewed 10 out of 24 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| ValidateTableViewTitles.png | Updated baseline screenshot for new ACES environment |
| TextInEditorShouldScroll.png | Updated baseline screenshot for new ACES environment |
| PageShouldNotScroll.png | Updated baseline screenshot for new ACES environment |
| LargeTitleDisplayWorks.png | Updated baseline screenshot for new ACES environment |
| EditorShouldNotMoveToBottom.png | Updated baseline screenshot for new ACES environment |
| Issue27750.cs | Added iOS-specific keyboard cropping |
| Issue26754.cs | Added macOS version check to ignore test on macOS < 26 |
| Issue25200.cs | Added macOS version checks for ActionSheet tests |
| Issue24496.cs | Added keyboard cropping for Entry7 test |
| Issue23158.cs | Added iOS-specific keyboard cropping |
| Issue22715.cs | Added keyboard cropping |
| Issue19500.cs | Added macOS version check to ignore test on macOS < 26 |
| Issue17123.cs | Added macOS version check to ignore test on macOS < 26 |
| Issue12156.cs | Added macOS version check to ignore test on macOS < 26 |
| ContentPageFeatureTests.cs | Added iOS-specific keyboard cropping for 3 tests |
| #if IOS | ||
| VerifyScreenshot(cropBottom: 1200); | ||
| #else | ||
| VerifyScreenshot(tolerance: 0.5, retryTimeout: TimeSpan.FromSeconds(2)); | ||
| #endif |
There was a problem hiding this comment.
The inline #if IOS directives violate the codebase convention of hiding platform-specific logic behind extension methods. According to the UI Testing Guidelines, "Do NOT use #if ANDROID, #if IOS, etc. directly in test methods. Platform-specific behavior must be hidden behind extension methods for readability."
Consider creating an extension method that internally handles the iOS-specific cropping, making the test code cleaner and more maintainable.
| #if IOS | ||
| VerifyScreenshot(cropBottom:1400); | ||
| #else | ||
| VerifyScreenshot(); | ||
| #endif |
There was a problem hiding this comment.
The inline #if IOS directives violate the codebase convention of hiding platform-specific logic behind extension methods. According to the UI Testing Guidelines, "Do NOT use #if ANDROID, #if IOS, etc. directly in test methods. Platform-specific behavior must be hidden behind extension methods for readability."
Consider creating an extension method like VerifyScreenshotWithKeyboardCrop() that internally handles the iOS-specific cropping, making the test code cleaner and more maintainable.
| #if IOS | ||
| VerifyScreenshot(cropBottom: 1400); | ||
| #else | ||
| VerifyScreenshot(); | ||
| #endif |
There was a problem hiding this comment.
The inline #if IOS directives violate the codebase convention of hiding platform-specific logic behind extension methods. According to the UI Testing Guidelines, "Do NOT use #if ANDROID, #if IOS, etc. directly in test methods. Platform-specific behavior must be hidden behind extension methods for readability."
Consider creating an extension method that internally handles the iOS-specific cropping, making the test code cleaner and more maintainable.
| #if IOS | ||
| VerifyScreenshot(cropBottom: 1200); | ||
| #else | ||
| VerifyScreenshot(tolerance: 0.5, retryTimeout: TimeSpan.FromSeconds(2)); | ||
| #endif |
There was a problem hiding this comment.
The inline #if IOS directives violate the codebase convention of hiding platform-specific logic behind extension methods. According to the UI Testing Guidelines, "Do NOT use #if ANDROID, #if IOS, etc. directly in test methods. Platform-specific behavior must be hidden behind extension methods for readability."
Consider creating an extension method that internally handles the iOS-specific cropping, making the test code cleaner and more maintainable.
| #if IOS | ||
| VerifyScreenshot(cropBottom: 1200); | ||
| #else | ||
| VerifyScreenshot(tolerance: 0.5, retryTimeout: TimeSpan.FromSeconds(2)); | ||
| #endif |
There was a problem hiding this comment.
The inline #if IOS directives violate the codebase convention of hiding platform-specific logic behind extension methods. According to the UI Testing Guidelines, "Do NOT use #if ANDROID, #if IOS, etc. directly in test methods. Platform-specific behavior must be hidden behind extension methods for readability."
Consider creating an extension method that internally handles the iOS-specific cropping, making the test code cleaner and more maintainable.
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/rebase |
d4fe834 to
02f849b
Compare
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
@sheiksyedm @TamilarasanSF4853 is this expected this difference?
There was a problem hiding this comment.
Each row is a standard UITableViewCell displaying the page title, which is automatically created by the native iOS framework when there are more tabs. The change in spacing is likely related to native behavior on the latest macOS environment and is not caused by any recent fix. @PureWeen
This pull request addresses the test case failures on iOS after the ACES pool migration in this PR: #33790.
Addressed Test cases:
Closes : #33842