runScript
The runScript
command runs a provided JavaScript file.
appId: com.example
env:
MY_NAME: John
---
- launchApp
- runScript: myScript.js
- inputText: ${output.myFlow}
A script would typically perform some action and set an output value that could be accessed later. See Outputs for more information.
var uppercaseName = MY_NAME.toUpperCase()
output.myFlow = uppercaseName // returns 'JOHN'
For more information regarding JavaScript, please refer to the JavaScript section:
JavaScriptFile Paths
Paths can be relative or absolute. Relative paths are required for cloud running. Relative paths are relative to the calling flow, not to the directory running the command.
In a directory structure like this:
βββ flows
β βββ test.yaml
βββ scripts
βββ uppercase.js
The flow test.yaml
would look like this:
appId: com.example
env:
MY_NAME: John
---
- launchApp
- runScript: ../scripts/uppercase.js
Passing parameters
runScript
accepts env
parameters, in the same way as runFlow
does (see Nested Flows).
- runScript:
file: script.js
env:
myParameter: 'Parameter'
Running conditionally
You can use conditionals to run a JavaScript file when some condition is true. For more information, please refer to the conditionals documentation.
Console logging
Console logging is supported from the JavaScript files provided in runScript
command. Logs from JavaScript are redirected to the console when using Maestro CLI.

Remember that when running in the cloud and requiring another file, you must specify a folder on the command line not just the flow file, e.g. maestro cloud myApp.apk ./myTestsFolder
else Maestro won't have the files required to run your tests, and you'll receive a 'Failed to parse file' error.
Last updated
Was this helpful?