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 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, 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). Esta configuración le da un nombre al 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 para tu módulo, de modo que puedas usarmake [options] <HelloWorldHostTest>
para compilar el 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 las referencias de rutas de clase durante el tiempo de compilación y se incorpora en el APK resultante.static_libs: [ "junit", ],