Venelx Docs

App tests (Maestro)

Venelx can run your project's UI test flows on a build worker right after the app is built. It is optional and off by default — projects that don't enable it are unaffected, and tests never block the artifact upload. Today the supported framework is Maestro.

Turn it on

  1. Add Maestro flow files to your repository (the default folder is .maestro).
  2. Open your project → Settings → Testing (https://app.venelx.com/project/<projectId>/settings?tab=testing) and tick Enable app tests.
  3. Choose the Build target to test. It must produce something installable on an emulator or simulator: an APK for Android, or a simulator .app / .zip build for iOS. Android App Bundles (.aab) and device .ipa builds are rejected with a clear message.
  4. Set the options below and click Save testing settings.
FieldMeaning
FrameworkMaestro.
Build target to testThe build target whose artifact gets installed.
Test flows pathFolder or file relative to your repo's root directory (default .maestro).
DeviceOptional AVD name, adb serial, or simulator name. Empty uses the first available device (one is booted if needed).
Extra CLI argumentsAppended to the Maestro command, for example --env USERNAME=qa --include-tags smoke. Shell operators are rejected.
Timeout3 to 180 minutes.
Mark the build job failed when tests failOff by default. The build itself stays success in history either way.

Triggers (any combination):

  • After every build of the test target (manual, push or pull request).
  • On pull request — build and test the target when a PR is opened or updated.
  • On push — build and test when the target's branch receives a push.

Pull request and push triggers need GitHub automation enabled for the project.

Run tests for a single build

  • From the project overview: use the Run app tests after build checkbox when you start a build.
  • Any branch: the same option works when you build a specific branch.
  • From the MCP server: trigger_build accepts branch and runTests. See the MCP guide.

Run tests against an existing build

Once tests are enabled, every successful build that has an installable artifact shows a Run tests button in Build history and on the project's Files page. It queues a test-only job: the worker takes the stored artifact, checks out the commit it was built from (for the flow files), installs it, and runs your suite. No rebuild and no new build-history entry — the test run links back to the original build.

Results

Open App tests in the project (https://app.venelx.com/project/<projectId>/tests). Each run shows:

  • status (passed, failed, error, running, queued), platform, branch or PR number, duration and the worker that ran it;
  • a pass/fail/skip summary and every test case, failures first, with their messages;
  • the tail of the runner output;
  • a link to the build logs.

For failed or errored runs a Debug bundle is attached (Maestro screenshots and command logs). Download it from the run's row; it is available to people with access to the project.

Other places results show up:

  • a comment on the pull request for PR-triggered runs;
  • tests.passed and tests.failed outbound webhooks, if you have webhooks configured.

Worker requirements

Tests run on a build worker. Whoever runs the worker needs:

  • the Maestro CLI installed (on PATH or in ~/.maestro/bin);
  • Android: Android SDK platform-tools (adb), plus an emulator image (AVD) or a connected device;
  • iOS: a Mac with an installed simulator runtime.

If something is missing, the test run finishes with status error and an actionable message (for example "no AVD" or "artifact is an .aab") instead of failing your build.

MCP

ToolWhat it does
test_runsLists recent app-test runs (status, summary, branch, linked build, failing cases) and returns the project's test configuration. Read scope.
update_test_configChanges the test configuration; only the fields you pass change. Write scope.
trigger_buildWith runTests: true, runs the suite after the build. Write scope.
list_branchesLists repository branches to build or test. Read scope.

Troubleshooting

MessageFix
"App tests are not enabled" (tests_not_configured)Enable them under Settings → Testing.
Artifact is an .aab / device .ipaPick an APK or simulator build as the test target.
Run is error with an install hintInstall Maestro or the emulator/simulator on the worker.