Pruebas de host JAR (Java)

Las pruebas de host JAR deben implementarse para proporcionar una cobertura de código completa de su software. Siga las instrucciones para compilar pruebas de unidades locales . Escriba pruebas de unidades pequeñas para validar una función específica y nada más.

Ejemplo

El siguiente archivo Blueprint proporciona un ejemplo simple de prueba de host JAR de Hello World para copiar y adaptar 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

Una instantánea del archivo Blueprint se incluye aquí para su 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. Ver un ejemplo de su uso en: frameworks/base/tools/powermodel/Android.bp

Ajustes

Consulte a continuación las explicaciones de los siguientes ajustes:

  • La configuración del 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 llama HelloWorldHostTest.jar . Además, esta configuración también define un nombre de destino de creación para su módulo, de modo que puede usar make [options] <HelloWorldHostTest> para compilar su módulo de prueba y todas sus dependencias.

    name: "HelloWorldHostTest",
    
  • La configuración de test_suites hace que el arnés de prueba de la Federación de Comercio detecte fácilmente la prueba. Aquí se pueden agregar otros conjuntos de pruebas, como CTS, para que la prueba de prueba del host JAR se pueda compartir.

    test_suites: ["general-tests"],
    
  • La configuración de 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 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",
    ],