Pruebas de host JAR

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ódulo java_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 llama HelloWorldHostTest.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 usar make [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",
    ],