Repository navigation
iOS & Android integration tests - #4559
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4559 +/- ##
==========================================
- Coverage 73.50% 73.46% -0.04%
==========================================
Files 482 482
Lines 17678 17678
Branches 3493 3493
==========================================
- Hits 12994 12988 -6
- Misses 3796 3800 +4
- Partials 888 890 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
To make room for Android potentially coming later.
7 tasks
Collaborator
Author
|
@sentry review |
jpnurmi
marked this pull request as ready for review
October 6, 2025 08:46
Flash0ver
reviewed
Oct 6, 2025
Co-authored-by: Stefan Pölz <38893694+Flash0ver@users.noreply.github.com>
| # by Android Device Tests, or manually when testing locally. This avoids | ||
| # slowing down non-Device Test CI builds further. | ||
| Install-XHarness | ||
| $script:emulator = Get-AndroidEmulatorId |
Collaborator
There was a problem hiding this comment.
TIL about $script scoped variables in PWSH!
jamescrosswell
approved these changes
Oct 6, 2025
jamescrosswell
left a comment
Collaborator
There was a problem hiding this comment.
Left one non-blocking suggestion, but otherwise LGTM 🎉
Technically, less correct but doesn't fail even if port forwarding had failed. This way, we can keep it simple and don't need to track it separately.
Collaborator
Author
|
Thanks for testing and helping! |
alexsohn1126
pushed a commit
that referenced
this pull request
Oct 11, 2025
Co-authored-by: Stefan Pölz <38893694+Flash0ver@users.noreply.github.com> Co-authored-by: James Crosswell <jamescrosswell@users.noreply.github.com>
This was referenced Oct 20, 2025
This was referenced Oct 24, 2026
ric-oliv
added a commit
that referenced
this pull request
Oct 27, 2026
Each Android emulator job ran the device tests, then Setup Environment, then the integration tests, about 22 minutes after waiting 7.5 for the device test app builds. The integration tests build their own app from source and share only the emulator, so they now run in a second job that starts with the workflow, on the same runners. The new job drops "Select Java 21". #4559 added it as "Select Java 17", when Setup Environment ended on Java 11, and since #5060 Setup Environment installs only Java 21. The new job uploads integration-test/mobile-app/test_output, where android.Tests.ps1 points xharness, without a warning when it's empty. It was empty on every run so far. On its first run, the Android workflow took 19.8 minutes instead of 30.1. The device test jobs took 3.6 to 3.8 minutes and the integration jobs 12.0 to 19.7. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ric-oliv
added a commit
that referenced
this pull request
Oct 27, 2026
Each Android emulator job ran the device tests, then Setup Environment, then the integration tests, about 22 minutes after waiting 7.5 for the device test app builds. The integration tests build their own app from source and share only the emulator, so they now run in a second job that starts with the workflow, on the same runners. The new job drops "Select Java 21". #4559 added it as "Select Java 17", when Setup Environment ended on Java 11, and since #5060 Setup Environment installs only Java 21. The new job uploads integration-test/mobile-app/test_output, where android.Tests.ps1 points xharness, without a warning when it's empty. It was empty on every run so far. On its first run, the Android workflow took 19.8 minutes instead of 30.1. The device test jobs took 3.6 to 3.8 minutes and the integration jobs 12.0 to 19.7. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ric-oliv
added a commit
that referenced
this pull request
Oct 27, 2026
* ci: run the iOS integration tests in their own job The iOS job ran the device tests and then the integration tests on one Mac, about 42 minutes in all. The two build and run different apps and share only the simulator, so the integration tests now run in a second job at the same time. ios.Tests.ps1 skips every case unless a simulator is already booted, and xharness only boots one in the ios-tests job, so the new job boots its own, with a 10-minute timeout. The boot takes about 2 minutes. The job uploads no results, because ios.Tests.ps1 writes nothing to the integration-test/mobile-app/test_output folder the old job uploaded. On its first run, the iOS workflow took 18 minutes, against 38.7 for the single job the same night, and all 8 integration cases passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: run the Android integration tests in their own job Each Android emulator job ran the device tests, then Setup Environment, then the integration tests, about 22 minutes after waiting 7.5 for the device test app builds. The integration tests build their own app from source and share only the emulator, so they now run in a second job that starts with the workflow, on the same runners. The new job drops "Select Java 21". #4559 added it as "Select Java 17", when Setup Environment ended on Java 11, and since #5060 Setup Environment installs only Java 21. The new job uploads integration-test/mobile-app/test_output, where android.Tests.ps1 points xharness, without a warning when it's empty. It was empty on every run so far. On its first run, the Android workflow took 19.8 minutes instead of 30.1. The device test jobs took 3.6 to 3.8 minutes and the integration jobs 12.0 to 19.7. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Helps verify that crash events are captured as expected after Cocoa and Java SDK updates (and eventually getsentry/sentry-cocoa#6193):
CrashType.ManagedCrashType.NativeNullReferenceExceptionFor example, see
#skip-changelog
Note
Adds MAUI-based Android and iOS integration tests executed on emulators/simulators in CI, with supporting test app, utilities, and workflow updates (including retries and result artifacts).
integration-test/android.Tests.ps1with retry; checkout submodules; set up Java 17; fetch sharedgithub-workflows; reuse emulator config via YAML anchors; upload bothtest_outputandintegration-test/mobile-app/test_output.integration-test/ios.Tests.ps1with retry; upload both result paths.scriptsin sparse checkout for publishing builds.integration-test/net9-maui/**) targetingnet9.0-android35.0andnet9.0-ios18.0to drive crash scenarios and verify envelopes.integration-test/android.Tests.ps1,integration-test/ios.Tests.ps1; shared helpers inintegration-test/pester.ps1.scripts/device-test-utils.ps1(XHarness install, emulator/simulator helpers);scripts/device-test.ps1now uses these helpers and simplifies simulator selection.integration-test/common.ps1to source shared Pester extensions.Written by Cursor Bugbot for commit 8144e87. This will update automatically on new commits. Configure here.