Pruebas de host JAR

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ódulo java_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 denomina HelloWorldHostTest.jar . Además, esta configuración también define un nombre de destino make para su módulo, de modo que pueda usar make [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",
    ],