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


gradle-plugin 0.10.2

  • Bumped transitive org.json dependency to latest (20230227)

gradle-plugin 0.10.1

  • Fixed java.lang.NoClassDefFoundError: org/json/JSONObject on newer AGP versions


gradle-plugin 0.10.0

  • Fixed Gradle plugin incompatibility with Gradle 8.x and 6.x versions
  • Bumped default ew-cli to 0.9.8


ew-cli 0.9.8

  • Fixed APK file too large message for –library-test inputs.
  • Bumped max APK file size to 500MiB.


Gradle plugin 0.9.5

  • Added video recording to the Gradle plugin. This is disabled by default, but can be enabled by setting the recordVideo option to false in the emulatorwtf {} project extension.
  • Bumped default ew-cli in the Gradle plugin to 0.9.7

GitHub action emulator-wtf/run-tests v0.9.0

  • Added video recording to the GitHub action. This is disabled by default, but can be enabled by setting the recordVideo option to false in the emulatorwtf {} project extension.
  • Bumped default ew-cli in the GitHub action to 0.9.7
  • Brought possible inputs roughly on par with the Gradle plugin, full list of all new input options added:
    • library-test to run library module tests (no app apk)
    • outputs to filter what gets downloaded after the test, Defaults to merged_results_xml,coverage,pulled_dirs.
    • record-video to record a video of the test run
    • timeout to increase or decrease the default 15m test timeout. Minimum 60s, maximum 3h.
    • num-balanced-shards to use sharding based on historical test runtimes.
    • side-effects - your one stop shop to disable error retries and test result caching
    • num-flaky-test-attemtps to add repeats to failed shards/jobs
    • file-cache to disable the APK & test data cache (on by default)
    • file-cache-ttl to fine-tune how long we keep APK files in the cache (1h by default)
    • test-cache to disable the test result cache



  • Added to our outbound IPs


  • Improved video recording output on NexusLowRes and Tablet10 devices
  • Fixed first few frames of video recording being too blurry
  • Added model=Pixel7 devices - an emulator resembling the Pixel 7 phone with it’s 1080x2400 resolution, full list of emulators added:
    • device=Pixel7,version=23
    • device=Pixel7,version=24
    • device=Pixel7,version=27
    • device=Pixel7,version=29
    • device=Pixel7,version=30
    • device=Pixel7,version=31
    • device=Pixel7,version=33
    • device=Pixel7Atd,version=30
    • device=Pixel7Atd,version=31


ew-cli 0.9.7

  • Fixed a bug in ew-cli --test-targets-for-shard parameter where only the first target was picked from multiple ;-separated targets


ew-cli 0.9.6

  • Fixed a regression introduced in ew-cli 0.9.5 where pulling device dirs failed with a crash when downloading the test results

gradle-plugin 0.9.3

  • Added ignoreFailures option to the emulatorwtf {} project extension, which will cause the task to not fail the build if the test run fails. This is useful for CI builds where you want to run tests on multiple subprojects and don’t want to fail the build if one subproject fails.

    NOTE: you can discover whether the build was successfuly either by checking the JUnit XML files or configure the plugin to output a JSON summary of the test result.

gradle-plugin 0.9.4

  • Bumped default ew-cli in the Gradle plugin to 0.9.6


ew-cli 0.9.5

  • We switched our minify stack from Proguard to R8, resulting in a rough 33% reduction in the size of the ew-cli binary


ew-cli 0.9.3

  • broken release due to a bug in the Proguard minified, do not use

ew-cli 0.9.4

  • reverted changes introduced in 0.9.3


ew-cli 0.9.2

  • fixed ew-cli --prepare option not working with some API token formats
  • also fixed the --prepare option always returning a non-zero exit code


gradle-plugin 0.9.2

  • the Gradle plugin now runs different application variant tests in parallel using the Gradle workers
  • the plugin now creates a testWithEmulatorWtf anchor task depending on all of the possible test tasks
  • added variantFilter {} option to the plugin to selectively disable for certain variants, example usage:
    emulatorwtf {
      // Do not generate the test task for some specific variants
      variantFilter {
        if ( == 'release') {
          enabled = false


  • fixed really annoying browser back behaviour where it was hard to return from a results link
  • fixed incorrectly displaying failed tests as flaky with some test runs


ew-cli 0.9.1

  • added --num-balanced-shards [value] for fair, historical runtime based sharding: will store historical test runtime at a single test level and will assign tests to shards in the most even way possible, leading to shorter overall test times than --num-shards or --num-uniform-shards.

gradle-plugin 0.9.1

  • bumped default ew-cli to 0.9.1
  • added numBalancedShards property for fair, historical runtime based sharding, see the ew-cli release notes above


ew-cli 0.9.0

  • breaking! ew-cli now outputs a merged JUnit result XML file that combines all of the devices and shards into a single file.

    Separate JUnit result XML files, device logcat files or captured videos are no longer downloaded by default - this helps to cut down on ew-cli runtime, especially for larger test suites with many shards. Logcat and video will
    still be captured and viewable in the web UI.

    If you need to download these (to store in your CI artifacts for example) you can revert to the old behaviour by adding --outputs results_xml,coverage,pulled_dirs,logcat,captured_video.

gradle-plugin 0.9.0

  • Bumped default ew-cli version to 0.9.0
  • Added outputTypes option to the extension DSL



  • The test results web UI now displays flaky tests with a separate icon if test was run with --num-flaky-test-attempts and there were flakes discovered


ew-cli 0.0.51

  • ew-cli now has exit codes indicating various failure modes
  • added --num-flaky-test-attempts option to ew-cli to re-attempt running failed devices and/or shards


ew-cli 0.0.50

  • Tests that add additional data files with ew-cli now cache their results properly.



  • Completely revamped the results web UI. Read the blogpost here.



  • Added API 33 emulators, full list of all emulators added:
    • device=Pixel2,version=33
    • device=Tablet10,version=33
    • device=NexusLowRes,version=33
    • device=Monitor,version=33
  • Fixed capturing coverage when using the test service storage


ew-cli 0.0.49

  • now caches test results, as long as the app and test apks are byte-for-byte the same and the test arguments haven’t changed. Use --no-test-cache or --side-effects to disable this behaviour.


gradle-plugin 0.0.13

  • The Gradle plugins are now fully cacheable, even when using a remote cache.



  • Fixed a race condition where sometimes API 24 emulators wouldn’t start properly
  • Added to our outbound IPs


gradle-plugin 0.0.12

  • The Gradle plugin now picks up isolated Android test ( subprojects. When using these make sure the targetProjectPath is configured in the android {} block.


ew-cli 0.0.48

  • ew-cli now supports capturing a video recording of the test - pass both --record-video and --outputs-dir, a recording.mp4 file will be saved per device-job combination


  • All network traffic from emulators now originates from these IP addresses:


    See the documentation for further details and machine-readable endpoints for getting these.

« Newer changes
Older changes »