Las pruebas de host de archivos Java (JAR) deben implementarse para proporcionar una cobertura completa del código de tu software. Sigue las instrucciones para compilar pruebas unitarias 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 que puedes 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 de JAR. Consulta un ejemplo de su uso en:
frameworks/base/tools/powermodel/Android.bp
Configuración
A continuación, se explican los siguientes parámetros de configuración:
El parámetro de configuración
name
es obligatorio cuando se especifica el tipo de módulojava_test_host
(al comienzo del bloque). Este parámetro de configuración le da un nombre a tu módulo, y el archivo JAR resultante tiene el mismo nombre y un sufijo.jar
. En el siguiente ejemplo,el archivo JAR de prueba resultante se llamaHelloWorldHostTest.jar
. Además, este parámetro de configuración también define un nombre de destino de compilación para tu módulo, de modo que puedas usarmake [options] <HelloWorldHostTest>
para compilar tu módulo de prueba y todas sus dependencias.name: "HelloWorldHostTest",
El parámetro de configuración
test_suites
hace que el arnés de prueba de Trade Federation pueda descubrir fácilmente la prueba. Aquí se pueden agregar otros conjuntos de pruebas, como CTS, para que se pueda compartir la prueba de host de JAR.test_suites: ["general-tests"],
El parámetro de configuración
static_libs
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 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", ],