Closed ErikSin closed 3 months ago
Ease of Use: Maestro uses a declarative YAML syntax to define test flows, which is simple and user friendly and easy to read. It is very simple to get started and involves no configuration. There is even a no-code CLI where you can visually select elements to add to testing flows. It is intuitive and smooth and works very well with immediate and easy feedback. I set up in a couple of hours and you all could probably have done it even faster. Conditional statements are nice and I don’t see those in detox. Can set the location (https://maestro.mobile.dev/api-reference/commands/setlocation)
Speed: The tests run very quickly. The tests are very quick to write and involve few words or boilerplate.
Configuration: Locally, at least, it is easy to run just some tests or one test or groups of tests and build reusable components and have variables for strings and such.
Limited Flexibility: While Maestro is simpler, it has limited flexibility compared to Detox. You cannot define custom keywords or actions beyond what Maestro provides out-of-the-box. (that being said I find it hard to imagine what we will need to do that can’t be done)
Blackbox testing: While this very clearly simulates a user experience, it can make debugging more opaque.
Cloud/ CI: Not sure how easy it is to use Maestro for CI without using their cloud servers which seem expensive (.10 per flow per upload). I think they built maestro to make money off the cloud server service. If we did use it, they have a lot of support for github actions. I have tried to set up a github action to test it out without using the cloud service, but have not succeeded so far.
This research has been compiled by @cimigree. Original can be found in this google doc
We have decided to move forward with Maestro as out e2e testing library!
Research and compile pros and cons list of different testing libraries to use for e2e testing.
To Do