Se deben implementar pruebas de host de archivo Java (JAR) para proporcionar una cobertura completa del código de su software. Siga las instrucciones para crear pruebas de unidades locales . Escribe pequeñas pruebas unitarias para validar una función específica y nada más.
Ejemplo
El siguiente archivo Blueprint proporciona un ejemplo sencillo de prueba de host JAR de Hello World para copiarlo y adaptarlo 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
Aquí se incluye una instantánea del archivo Blueprint para mayor 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. Vea un ejemplo de su uso en: frameworks/base/tools/powermodel/Android.bp
Ajustes
Consulte a continuación las explicaciones de las siguientes configuraciones:
La configuración
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 denominaHelloWorldHostTest.jar
. Además, esta configuración también define un nombre de destino make para su módulo, de modo que pueda usarmake [options] <HelloWorldHostTest>
para construir su módulo de prueba y todas sus dependencias.name: "HelloWorldHostTest",
La configuración
test_suites
hace que el arnés de pruebas de la Federación de Comercio pueda descubrir fácilmente la prueba. Aquí se pueden agregar otros conjuntos de pruebas, como CTS, para que se pueda compartir la prueba del host JAR.test_suites: ["general-tests"],
La configuración
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 nombrado produzca un archivo.jar
. El contenido del módulo se utiliza para resolver referencias de classpath durante el tiempo de compilación y se incorpora al APK resultante.static_libs: [ "junit", ],