emulator-wtf/Run Android instrumentation tests
Run tests with emulator.wtf
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 22, 2026
- License
- MIT
Pinned Snippet
uses: emulator-wtf/run-tests@ea7a477cbfa9d3ab28cb2333098df1b333ea3ef3 # v1.0.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| version | ew-cli version to use | yes | 1.4.0 |
| api-token | Api token for emulator.wtf | no | — |
| app | Application apk file | no | — |
| test | Test apk file | no | — |
| library-test | Library test apk file | no | — |
| additional-apks | Additional apks to install, one per line | no | — |
| file-cache-ttl | Max time to keep cached files in the backend followed by a unit (d, h, m or s), with the maximum value being 90d and minimum value being 5m (default: 1h) | no | — |
| file-cache | Set to false to disable remote file cache. APK and test-data will always be uploaded, even if they were uploaded before. | no | — |
| display-name | Display name for the test run, this is used to identify the test run in the GitHub integration. | no | — |
| devices | Device configurations to use, in the form of model=X,version=Y per line | no | — |
| use-orchestrator | Set to true to use the Android Test Orchestrator | no | — |
| test-runner-class | Instrumentation runner class to use for running tests (default is read from the test apk) | no | — |
| clear-package-data | Set to true to clear app data between every test (only works with orchestrator) | no | — |
| num-flaky-test-attempts | Number of times to re-run shards or jobs that had test failures. Repeat attempts will run in parallel. Default: 0. | no | — |
| flaky-test-repeat-mode | Whether to repeat the whole failed shard (all) or only the failed tests (failed_only) in case of flaky tests. Default: failed_only. | no | — |
| timeout | Max time until this test run is cancelled, expressed by a number followed by a unit (h, m or s), with the maximum value being 3h and minimum value being 60s. Default: 15m. | no | — |
| test-targets | Test targets to run, one operator-target per line, e.g. class foo.bar.Foobar | no | — |
| environment-variables | Environment variables to pass to AndroidJUnitRunner, one per line in the form of key=value | no | — |
| secret-environment-variables | Secret environment variables to pass to AndroidJUnitRunner, one per line in the form of key=value. Use this for passing tokens, passwords, credentials, etc. | no | — |
| test-cache | Set to false to disable remote test cache - tests will always re-run, even if they were run before. | no | — |
| side-effects | Indicates that the test run has side effects, i.e. it hits external resources and might be a part of a bigger test suite. Adding this flag means that the test will not be automatically retried in case of errors. Default: false. | no | — |
| num-balanced-shards | Set to a number larger than 1 to split your tests into even shards based on historical runtime. | no | — |
| shard-target-runtime | Target runtime for each shard in minutes, tests will be split into shards targeting this runtime for each shard based on historical data on a best effort basis. | no | — |
| testcase-duration-hint | Hint for the average runtime for each test case expressed by a number followed by a unit (h, m, s or ms), with the maximum value being 3h and the minimum value being 1ms (default 10s). Useful when historical runtime data is missing for tests alongside with `--shard-target-runtime`. | no | — |
| num-uniform-shards | Set to a number larger than 1 to randomly split your tests into multiple shards. | no | — |
| num-shards | Set to a number larger than 1 to split your tests into even shards based on test count. | no | — |
| record-video | Set to true to record video of the test run | no | — |
| with-coverage | Set to true to collect coverage files and save them to <outputs-dir> | no | — |
| directories-to-pull | Directories to pull from device and store in <outputs-dir>, one per line | no | — |
| outputs | Comma-separated list to specify what to download to output-dir. Defaults to `merged_results_xml,coverage,pulled_dirs`. | no | — |
| outputs-dir | Location to store test outputs in | no | — |
| dns-server | DNS server(s) to use for the emulator, one per line. Can specify up to 4 servers. If not specified, the emulator will use default DNS servers. | no | — |
| dns-override | Hard-code specific hostname-ip combinations, one per line in the form of hostname=ip (e.g. example.com=10.0.0.1). | no | — |
| egress-tunnel | Set to true to enable tunneling outgoing internet traffic from the emulator to the action. This will redirect all network traffic as if you were running the emulator within the action. | no | — |
| egress-localhost-fwd-ip | When using the egress tunnel, make this action's localhost available to the emulator under the specified IP address (should NOT be a public IP, loopback IP or broadcast IP) | no | — |
| proxy-host | Configure a proxy host to use for all requests when making emulator.wtf API calls. | no | — |
| proxy-port | Configure a proxy port to use for all requests when making emulator.wtf API calls. | no | — |
| proxy-user | Set the proxy user to use for authentication. | no | — |
| proxy-password | Set the proxy password to use for authentication. | no | — |
| async | Run the test asynchronously, without waiting for the results. This shines when used together with GitHub integration. | no | — |
Outputs
no outputs