Blog Status Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage



  • We’ve added support for ATD emulators with API versions 32 and 33. Also, ATD images for API 31 are available again. List of device combinations added:
    • device=Pixel2Atd,version=31
    • device=Pixel2Atd,version=32
    • device=Pixel2Atd,version=33
    • device=Pixel7Atd,version=31
    • device=Pixel7Atd,version=32
    • device=Pixel7Atd,version=33
    • device=Tablet10Atd,version=31
    • device=Tablet10Atd,version=32
    • device=Tablet10Atd,version=33
    • device=NexusLowResAtd,version=31
    • device=NexusLowResAtd,version=32
    • device=NexusLowResAtd,version=33
    • See all available emulator images here.


Test execution

  • Fixed a case where test runs that use a custom faulty AndroidJUnitRunner would get stuck.


Test execution

  • Fixed erroring out when retrying flaky tests with commas in their names or parameters


gradle-plugin 0.15.1

  • Fixed the collectEmulatorWtfResults task not using the proxy configuration supplied via emulatorwtf {} block or the system properties


ew-cli 0.9.19

  • Added --collect-results command to ew-cli. This will download the results of a previous run (invoked with --async --json) and save them locally. Useful for more advanced integrations making many ew-cli invokes in parallel.

gradle-plugin 0.15.0

  • Bumped default ew-cli to 0.9.19
  • Gradle plugin now runs tests out of band from Gradle workers when configured with async = true. This frees up the workers to perform ordinary build tasks and allows running more tests concurrently.
  • Added collectResultsTaskEnabled option to the Gradle plugin configuration. This adds a collectEmulatorWtfResults task to the project which can be used to fetch the results of all submodule tests (invoked with async = true). Useful for more advanced integrations making many ew-cli invokes in parallel.


ew-cli 0.9.18

  • You can now run tests on GPU-accelerated emulators by adding gpu=auto to the --device option. Our preliminary internal benchmarks point to a roughly 2x performance improvement when using GPU-acceleration. This will use GPU-acceleration whenever possible. Use gpu=software to force use of software GPU. Today, defaults to software rendering if gpu isn’t specified, but we’ll soon default to GPU-acceleration. NOTE: today GPU-acceleration is available on API versions 23, 24, 27, 29, 30, 31. It is not yet available on 33 or 34.


Results webapp

  • Fixed an issue where a flaky test would erroneously show up as a failure in the results


  • We’ve added support for API 34 (Android 14) emulators. You can now run tests on the latest Android version! Full list of device combinations added:
    • device=Pixel2,version=34
    • device=Pixel7,version=34
    • device=Tablet10,version=34
    • device=NexusLowRes,version=34
    • device=Monitor,version=34



  • API 31 ATD emulators have been removed due to stability issues in the system image.


ew-cli 0.9.17

  • Added --shard-target-runtime option to ew-cli. It’s a new sharding mode where you specify the overall runtime instead of the number of shards. E.g. a 10-min test suite will spawn 5 shards and finish around 2 minutes when invoked with --shard-target-runtime 2m
  • When running with --num-flaky-test-attempts we no longer re-run whole shards but only the tests that failed. You can revert to the whole behaviour by adding --flaky-test-repeat-mode all.

emulator-wtf/run-tests@v0.9.6 GitHub action

  • Bumped default ew-cli to 0.9.17
  • Added shard-target-runtime and flaky-test-repeat-mode options, see above for the description

gradle-plugin 0.14.0

  • Bumped default ew-cli to 0.9.17
  • Added shardTargetRuntime and flakyTestRepeatMode options, see above for the description

2023-06-08 web app

  • Fixed a case where the Gradle plugin would use arm-architecture APK files even when x86 APK splits were available

2023-06-07 web app

  • We’ve finally added test result listing! After signing in to you can browse the history of all of your tests and navigate to their respective results pages.

2023-06-05 web app

  • The LLM-powered analyze test result button now streams the reply on the fly instead of being stuck for multiple minutes

emulator-wtf/run-tests@v0.9.5 GitHub action

  • Fixed --display-name errors when running the action
  • The emulator-wtf/run-tests GitHub action now depends on the pinned versions of the emulator-wtf/setup-ew-cli and emulator-wtf/invoke subtasks. If you depend on an exact version (e.g. emulator-wtf/run-tests@v0.9.5) then you’ll be using fixed and deterministic versions of all the GitHub Actions.


gradle-plugin 0.13.2

  • Gradle plugin now also picks up https.proxy* system properties in addition to http.proxy*


ew-cli 0.9.15

  • Added --proxy-host, --proxy-port, --proxy-user and --proxy-password options to configure the use of a https proxy when hitting APIs

ew-cli 0.9.16

  • ew-cli now prefers IPv4 networking when both IPv6 and IPv4 networking are available

run-tests v0.9.4

  • Bumped default ew-cli to 0.9.15


ew-cli 0.9.14

  • Fixed: ew-cli no longer prints garbage to standard out when the API is completely unavailable.
  • Improved error handling for unreachable API

gradle-plugin 0.13.0

run-tests GitHub action v0.9.3

  • Bumped default ew-cli to 0.9.14


ew-cli 0.9.13

  • ew-cli now prints errors in a {"error": "some error message..."} object to standard out when running with the --json flag

gradle-plugin 0.12.1, 0.12.2

  • Added a printOutput option to the Gradle plugin which will print the output of the ew-cli command to standard out. This is useful for debugging issues with the plugin without having to resort to the noisy --info flag.
  • The Gradle plugin now shuttles errors from ew-cli correctly, displaying them at build failure.
  • Bumped default ew-cli to 0.9.13

run-tests action 0.9.2

  • Added --test-targets and --display-name options to the GitHub action.
  • Bumped default ew-cli to 0.9.13


ew-cli 0.9.12

  • ew-cli now fails early if your app or test apk minSdkVersion is not supported by the selected devices. This avoids wasting time on test runs that are guaranteed to fail.


ew-cli 0.9.11

  • Tests no longer error out when a device doesn’t have a directory specified by --directories-to-pull. This avoids marking tests as errors if only some shards produce the files to be pulled.

gradle-plugin 0.12.0

  • Gradle plugin no longer adds the repository if repositoryManagement is used from the settings.gradle or settings.gradle.kts file.
  • Added a project property (wtf.emulator.addrepository=false) to bypass adding the repository completely, even if the plugin would add the repository manually. When using this you should either add the repository manually or provide the ew-cli binary in some other way.

2023-05-18 web app

  • Scaleup plan upgrade is now available to all users via self-service. You can upgrade to this plan from the billing page in the web app
  • Added GitHub SSO support. Your GitHub team members can now access your organization directly without having to go through email invites (scaleup plan only).


ew-cli 0.9.10

  • The --test-targets-for-shard option now supports all the same operators as --test-targets: class, notClass, package, notPackage, annotation, notAnnotation, size.


Test results page

  • Fixed logcat not displaying correctly for timed out tests
  • Results page now jumps to the first timeout when both timeouts and failures were encountered in a test run


Test results page

  • Fixed flaky tests not being displayed correctly if a test suite spanned multiple devices and shards

ew-cli 0.9.9

  • Added the --async flag to ew-cli which will make it return immediately after starting the test run. The test results will be posted back to GitHub when GitHub integration is used. This is useful for CI systems where you want to save build minutes by running in parallel with other tasks.

GitHub integration

  • Added an option to log in with GitHub OAuth to web UI.
  • Fixed PR comments not showing up for GitHub Actions builds triggered with the pull_request option.

gradle-plugin 0.11.0

  • Added async option to Gradle plugin which will make it return immediately after starting the test run. The test results will be posted back to GitHub when GitHub integration is used. This is useful for CI systems where you want to save build minutes by running in parallel with other tasks.
  • Bumped default ew-cli to 0.9.9

GitHub run-tests action 0.9.1

  • Added async flag to the run-tests action, behaviour is similar to the ew-cli and gradle-plugin options above.
  • Bumped default ew-cli to 0.9.9


Organization settings page

Added a new organization settings page in web UI where you can:

  • Change the organization name
  • Link the organization with GitHub to enable various GitHub features. Read more here.


LLM powered test failure explanations

  • Added an “explain this error” button to failed test cases which will analyze the failure and provide a human-readable explanation of what went wrong and how to potentially solve it.
Older changes ยป