2023-07-11
Test execution
- Fixed a case where test runs that use a custom faulty
AndroidJUnitRunnerwould get stuck.
AndroidJUnitRunner would get stuck.collectEmulatorWtfResults task not using the proxy configuration supplied via emulatorwtf {} block or the system
properties--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.ew-cli to 0.9.19async = true. This frees up the
workers to perform ordinary build tasks and allows running more tests concurrently.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.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, emulator.wtf
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.device=Pixel2,version=34device=Pixel7,version=34device=Tablet10,version=34device=NexusLowRes,version=34device=Monitor,version=34--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--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.ew-cli to 0.9.17shard-target-runtime and flaky-test-repeat-mode options, see above for the descriptionew-cli to 0.9.17shardTargetRuntime and flakyTestRepeatMode options, see above for the description--display-name errors when running the actionemulator-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 emulator.wtf GitHub Actions.https.proxy* system properties in addition to http.proxy*ew-cli to 0.9.16proxyHost, proxyPort, proxyUser and proxyPassword, in addition to manual
configuration the [standard Java http.proxy* system properties](https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html#Proxies
will be picked up automatically--proxy-host, --proxy-port, --proxy-user and --proxy-password options
to configure the use of a https proxy when hitting emulator.wtf APIsew-cli now prefers IPv4 networking when both IPv6 and IPv4 networking are availableew-cli to 0.9.15ew-cli no longer prints garbage to standard out when the API is completely unavailable.ew-cli to 0.9.14testTargets option. Use something like
testTargets = 'class foo.bar.Baz' to only run tests in the foo.bar.Baz class.
See the full options here: https://developer.android.com/reference/androidx/test/runner/AndroidJUnitRunner#typical-usageew-cli to 0.9.14ew-cli now prints errors in a {"error": "some error message..."} object to standard out when running with
the --json flagprintOutput 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.ew-cli correctly, displaying them at build failure.ew-cli to 0.9.13--test-targets and --display-name options to the GitHub action.ew-cli to 0.9.13ew-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.--directories-to-pull. This avoids
marking tests as errors if only some shards produce the files to be pulled.maven.emulator.wtf repository if repositoryManagement is used from the
settings.gradle or settings.gradle.kts file.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 https://maven.emulator.wtf/releases/
repository manually or provide the ew-cli binary in some other way.--test-targets-for-shard option now supports all the same operators as --test-targets:
class, notClass, package, notPackage, annotation, notAnnotation, size.Fixed flaky tests not being displayed correctly if a test suite spanned multiple devices and shards
Added an option to log in with GitHub OAuth to emulator.wtf web UI.
Fixed PR comments not showing up for GitHub Actions builds triggered with the pull_request option.
--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 emulator.wtf in parallel with other tasks.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 emulator.wtf in parallel with other tasks.ew-cli to 0.9.9async flag to the run-tests action, behaviour is similar to the
ew-cli and gradle-plugin options above.ew-cli to 0.9.9Added a new organization settings page in web UI where you can:
LLM powered test failure explanations!
20230227)java.lang.NoClassDefFoundError: org/json/JSONObject on newer AGP versions