flutter/dev/tools/android_driver_extensions
Matan Lurey e517ae3457
Refactor android_engine_test, make it easier to debug/deflake locally. (#161534)
The goal here is to have a great standalone `android_engine_test` suite
that [replaces
`scenario_app/android`](https://github.com/flutter/flutter/pull/160992).

No test is _functionally_ changed in this PR, but overview of changes:
- Finished renaming the suite `android_engine_tests` instead of
`flutter_driver_android`
- Added instructions and an environment variable for local generation of
golden-files (`UPDATE_GOLDENS=1`)
- Added explanations of the individual tests, where they live, and how
to run them locally
- Added a hybrid-composition (HC, not TLHC, which is already tested)
test
- Renamed "other_smiley" to "surface_texture_smiley" (and renamed the
original to "surface_producer_smiley")
- Removed unnecessary ".android" suffix (we will not run this on
anything but Android)
- Added a `tool/deflake.dart` to run a test suite 10x (or custom) times
locally to try and determine flakiness

After this PR, I'll add flags to let you control variants and name the
screenshots accordingly, i.e.:
- API v34 or v35
- OpenGLES or Vulkan (will require an `AndroidManifest.xml` edit during
the test instrumentation)
2025-01-15 01:05:31 +00:00
..

Android Extensions for Flutter Driver

This a minimal library on top of flutter_driver that provides extensions for interacting with the native Android platform, to otherwise perform actions that are not possible purely through Flutter Driver, and would want to run as an external test (run on the host, not on the device):

  • Take a screenshot, including of native widgets (platform views, textures)
  • Tap on a native widget
  • Rotate the device
  • Background an app and send a "trim memory" signal to the device

Note

While this library runs on Flutter's own CI, and is used to test Flutter's Platform Views, it is not officially supported as an external API, and may change or be removed at any time. We recommend you use existing testing infrastructure, such as: