Las pruebas de host JAR deben implementarse para proporcionar una cobertura de código completa de su software. Siga las instrucciones para compilar pruebas de unidades locales . Escriba pruebas de unidades pequeñas para validar una función específica y nada más.
Ejemplo
El siguiente archivo Blueprint proporciona un ejemplo simple de prueba de host JAR de Hello World para copiar y adaptar a sus 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
Una instantánea del archivo Blueprint se incluye aquí para su comodidad:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
La declaración java_test_host
al principio indica que se trata de una prueba de host JAR. Ver un ejemplo de su uso en: frameworks/base/tools/powermodel/Android.bp
Ajustes
Consulte a continuación las explicaciones de los siguientes ajustes:
La configuración del
name
es necesaria cuando se especifica el tipo de módulojava_test_host
(al comienzo del bloque). Esta configuración le da un nombre a su módulo, y el JAR resultante tiene el mismo nombre y un sufijo.jar
. En el siguiente ejemplo, el JAR de prueba resultante se llamaHelloWorldHostTest.jar
. Además, esta configuración también define un nombre de destino de creación para su módulo, de modo que puede usarmake [options] <HelloWorldHostTest>
para compilar su módulo de prueba y todas sus dependencias.name: "HelloWorldHostTest",
La configuración de
test_suites
hace que el arnés de prueba de la Federación de Comercio detecte fácilmente la prueba. Aquí se pueden agregar otros conjuntos de pruebas, como CTS, para que la prueba de prueba del host JAR se pueda compartir.test_suites: ["general-tests"],
La configuración de
static_libs
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 con nombre 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", ],