A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Pruebas de host de JAR
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Se deben implementar pruebas de host de archivo Java (JAR) para proporcionar una cobertura de código completa de tu software. Sigue las instrucciones para compilar pruebas de unidades locales.
Escribe pruebas de unidades pequeñas para validar una función específica y nada más.
Ejemplo
El siguiente archivo de Blueprint proporciona un ejemplo simple de prueba de host de JAR de Hello World para copiar y adaptar a tus necesidades: platform_testing/tests/example/jarhosttest/Android.bp
Esto corresponde al código de prueba real que se encuentra en platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java.
Aquí se incluye una instantánea del archivo Blueprint para tu comodidad:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
La declaración java_test_host
al comienzo indica que se trata de una prueba de host JAR. Consulta un ejemplo de su uso en frameworks/base/tools/powermodel/Android.bp.
Configuración
A continuación, se incluyen explicaciones de los siguientes parámetros de configuración:
La configuración de name
es obligatoria cuando se especifica el tipo de módulo java_test_host
(al comienzo del bloque). Este parámetro de configuración le asigna un nombre a tu módulo, y el archivo JAR resultante tiene el mismo nombre y un sufijo .jar
. En el siguiente ejemplo,el JAR de prueba resultante se llama HelloWorldHostTest.jar
. Además, este parámetro de configuración también define un nombre de destino de make para tu módulo, de modo que puedas usar make [options] <HelloWorldHostTest>
para compilar tu módulo de prueba y todas sus dependencias.
name: "HelloWorldHostTest",
La configuración de test_suites
permite que el conjunto de pruebas de Trade Federation descubra fácilmente la prueba. Aquí se pueden agregar otros paquetes de pruebas, como CTS, para que se pueda compartir la prueba del host JAR.
test_suites: ["general-tests"],
La configuración de static_libs
le indica al sistema de compilación que incorpore el contenido de los módulos nombrados en el APK resultante del módulo actual.
Esto significa que se espera que cada módulo nombrado produzca un archivo .jar
.
El contenido del módulo se usa para resolver referencias de classpath durante el tiempo de compilación y se incorpora al APK resultante.
static_libs: [
"junit",
],
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# JAR host tests\n\nJava archive (JAR) host tests should be implemented to provide complete code\ncoverage of your software. Follow the instructions to [Build local unit\ntests](https://developer.android.com/training/testing/unit-testing/local-unit-tests).\nWrite small unit tests to validate a specific function and nothing more.\n\nExample\n-------\n\nThe following Blueprint file provides a simple Hello World JAR host test example\nto copy and adapt to your needs:\n[platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/Android.bp)\n\nThis corresponds to the actual test code found at:\n[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java)\n\nA snapshot of the Blueprint file is included here for convenience: \n\n java_test_host {\n name: \"HelloWorldHostTest\",\n\n test_suites: [\"general-tests\"],\n\n srcs: [\"test/**/*.java\"],\n\n static_libs: [\n \"junit\",\n \"mockito\",\n ],\n }\n\nThe `java_test_host` declaration at the beginning indicates that this is a JAR\nhost test. See an example of its use in:\n[frameworks/base/tools/powermodel/Android.bp](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/tools/powermodel/Android.bp)\n\nSettings\n--------\n\nSee below for explanations of the following settings:\n\n- The `name` setting is required when the `java_test_host` module type is\n specified (at the start of the block). This setting gives a name to your\n module, and the resulting JAR has the same name and a `.jar` suffix. In the\n example below,the resulting test JAR is named `HelloWorldHostTest.jar`. In\n addition, this setting also defines a make target name for your module, so\n that you can use `make [options] \u003cHelloWorldHostTest\u003e` to build your test\n module and all its dependencies.\n\n name: \"HelloWorldHostTest\",\n\n- The `test_suites` setting makes the test easily discoverable by the Trade\n Federation test harness. Other test suites can be added here, such as CTS,\n so that the JAR host test test can be shared.\n\n test_suites: [\"general-tests\"],\n\n- The `static_libs` setting instructs the build system to incorporate the\n contents of the named modules into the resulting APK of the current module.\n This means that each named module is expected to produce a `.jar` file.\n The module's content is used for resolving classpath references during\n compile time and incorporated into the resulting APK.\n\n static_libs: [\n \"junit\",\n ],"]]