Add support for databinding in android_local_test. Note that Android tests can successfully depend on libraries that have databinding enabled, but they seem to miss top-level generated files such as androidx.databinding.DataBinderMapperImpl which seems to only be generated in terminal/binary nodes in the build graph. This updates android_local_test to behave more like android_binary. Much of the code added to AndroidLocalTestBase is copied from AndroidCommon since it doesn't rely on AndroidCommon like AndroidLibrary, AndroidBinary, and AndroidTest do. Note that from what I can tell, this doesn't actually use the test-based parameters for the databinding tools and instead treats the build like android_binary. That seems to be consistent with android_test. Finally, this will introduce an incompatibility with kt_android_library: if the test itself wants to do any databinding generation, it won't work without a package change since the Kotlin code needs to be compiled in a separate library (which would need databinding enabled). The new test is mainly verifying that databinding properties are correctly being passed for android_local_test. The new databinding-specific test was verified as failing without the AndroidLocalTestBase changes. RELNOTES: Fix data-binding generation for android_local_test. PiperOrigin-RevId: 339386521
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md