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 de 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 esta es una prueba de host de JAR. Consulta un ejemplo de su uso en frameworks/base/tools/powermodel/Android.bp.
Configuración
A continuación, encontrarás explicaciones sobre los siguientes parámetros de configuración:
La configuración de
name
es obligatoria cuando se especifica el tipo de módulojava_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 llamaHelloWorldHostTest.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 usarmake [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
static_libs
le indica al sistema de compilación que incorpore el contenido de los módulos con nombre 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", ],