-
Notifications
You must be signed in to change notification settings - Fork 349
feat: Introduce maestro for UI testing #5013
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Amazing work! Once everything is set up, it's great how easy it seems to be to create tests with Maestro.
A couple of comments though. The main one being that I do really think we should be gitignoring the Derived/
folder
Examples/rc-maestro/rc-maestro/Sources/rc-maestro/RcMaestroApp.swift
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really excited for this (Maestro + Tuist)! Just checked the Maestro flows and they look good! 💪
Motivation
I've been exploring adding some UI integration tests to cover some basics for customer center. This PR introduces the first test, together with maestro + tuist.
Description
This PR contains two main components:
Maestro
The new example project
rc-maestro
contains a folder calledmaestro
with a defined structure to add new tests:config.yaml
points to the available flowsutils
folder with "sub-flows" to use in other proper flowsThis is called by running
maestro test maestro
from the root of the example project. The app must be installed before running the command.Tuist
To avoid adding yet another sample project to our manually maintained workspace, I went this way and quickly introduced tuist. The setup is not final, because we need to migrate more stuff in order to get all the benefits but we will get there eventually.
To generate the rc-maestro project:
tuist generate
The
xcodeproj
andxcworkspace
are ignored, and can be generated whenever you need the project.Important
This is not yet integrated in the CI, and some tests might conflict with each other. The plan is to add a cleanup flow to make sure each test leaves the simulator ready.