Skip to content

Conversation

@HexHyperion
Copy link
Contributor

This PR adds a documentation page for the Maestro integration introduced in #1709.

Pictures and videos are still needed, @kacperkapusciak could you add them here sometime?

@vercel
Copy link

vercel bot commented Nov 7, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
radon-ide Ready Ready Preview Comment Nov 7, 2025 0:19am

@kacperkapusciak
Copy link
Member

Remind me next week pls

HexHyperion added a commit that referenced this pull request Nov 20, 2025
This PR introduces the ability to run Maestro test files (flows) on
Radon simulators, either directly from the YAML files, or by selecting
the file to run from the IDE panel.

<img width="320" height="217" alt="Screenshot 2025-11-05 at 11 58 29"
src="https://github.com/user-attachments/assets/fff8ccb8-4564-43f7-9dd7-76c8ddd25e37"
/>
<img width="320" height="217" alt="Screenshot 2025-11-05 at 12 00 14"
src="https://github.com/user-attachments/assets/fe6538fe-c1ee-4a41-8b71-078fc30dfea8"
/>

Upon the start of the test, a new output channel with Maestro logs will
appear, along with an indicator button on the top bar of the IDE panel.
A test runner bundle will be installed on the device, and all test
actions will be performed automatically. The button can be clicked to
abort the test, and the underlying Maestro process will be killed,
allowing to launch another one on that device.

The tests are separate between devices, meaning that multiple tests can
be run simultaneously, one on each device.


https://github.com/user-attachments/assets/df59927a-0968-44ed-b813-a07a2cdf8295

The `maestro` command that's being called by Radon uses `adb` and
`xcodebuild`/`xcrun` under the hood, which means that:
- physical Android devices introduced in #1688 are fully supported and
can be tested without any additional steps
- we have to use shim scripts replacing the XCode commands to point
Maestro to our custom iOS device set; the `xcodebuild
test-without-building` command doesn't support custom sets, so we omit
it and install a prebuilt XCTest runner provided by Maestro through
`xcrun simctl --set <path/to/our/set>`.

### How Has This Been Tested: 

I successfully ran numerous test files with different Maestro commands
on Expo 52-54 and bare RN 79-82 apps, both on Android and iOS
simulators, and, after updating the simulator server, on a physical
Android 13 phone.

Processes of tests with failed assertions close properly with exit code
`1`, manually aborted processes also close properly with different
codes.

Attempts of launching a second test on a device where one is already
running or aborting result in no action and a warning message.

Invalid instructions inside test files are handled by Maestro, and the
process closes properly.

Switching devices mid-testing doesn't break the running tests.

If the selected device or app are unavailable, Maestro will close after
a while.

### How Has This Change Been Documented:

WIP in #1721
filip131311 pushed a commit that referenced this pull request Nov 28, 2025
This PR introduces the ability to run Maestro test files (flows) on
Radon simulators, either directly from the YAML files, or by selecting
the file to run from the IDE panel.

<img width="320" height="217" alt="Screenshot 2025-11-05 at 11 58 29"
src="https://github.com/user-attachments/assets/fff8ccb8-4564-43f7-9dd7-76c8ddd25e37"
/>
<img width="320" height="217" alt="Screenshot 2025-11-05 at 12 00 14"
src="https://github.com/user-attachments/assets/fe6538fe-c1ee-4a41-8b71-078fc30dfea8"
/>

Upon the start of the test, a new output channel with Maestro logs will
appear, along with an indicator button on the top bar of the IDE panel.
A test runner bundle will be installed on the device, and all test
actions will be performed automatically. The button can be clicked to
abort the test, and the underlying Maestro process will be killed,
allowing to launch another one on that device.

The tests are separate between devices, meaning that multiple tests can
be run simultaneously, one on each device.


https://github.com/user-attachments/assets/df59927a-0968-44ed-b813-a07a2cdf8295

The `maestro` command that's being called by Radon uses `adb` and
`xcodebuild`/`xcrun` under the hood, which means that:
- physical Android devices introduced in #1688 are fully supported and
can be tested without any additional steps
- we have to use shim scripts replacing the XCode commands to point
Maestro to our custom iOS device set; the `xcodebuild
test-without-building` command doesn't support custom sets, so we omit
it and install a prebuilt XCTest runner provided by Maestro through
`xcrun simctl --set <path/to/our/set>`.

### How Has This Been Tested: 

I successfully ran numerous test files with different Maestro commands
on Expo 52-54 and bare RN 79-82 apps, both on Android and iOS
simulators, and, after updating the simulator server, on a physical
Android 13 phone.

Processes of tests with failed assertions close properly with exit code
`1`, manually aborted processes also close properly with different
codes.

Attempts of launching a second test on a device where one is already
running or aborting result in no action and a warning message.

Invalid instructions inside test files are handled by Maestro, and the
process closes properly.

Switching devices mid-testing doesn't break the running tests.

If the selected device or app are unavailable, Maestro will close after
a while.

### How Has This Change Been Documented:

WIP in #1721
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants