Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Configuración de construcción simple

Cada nuevo módulo de prueba debe tener un archivo de configuración para dirigir el sistema de compilación con metadatos del módulo, dependencias en tiempo de compilación e instrucciones de empaquetado. Android ahora utiliza el sistema de construcción de Soong de configuración de prueba más simple.

Soong utiliza Blueprint o .bp archivos, que son JSON-como descripciones declarativas simples de módulos para construir. Este formato reemplaza el sistema basado en Make utilizado en versiones anteriores. Ver los archivos de referencia Soong en la continua integración de paneles para más detalles.

Para dar cabida a las pruebas personalizado o utilizar el Android Compatibilidad Test Suite (CTS), siga Configuración de prueba Complejo lugar.

Ejemplo

Las entradas a continuación provienen de este ejemplo fichero de configuración Blueprint: /platform_testing/tests/example/instrumentation/Android.bp

Aquí se incluye una instantánea para mayor comodidad:

android_test {
    name: "HelloWorldTests",
    srcs: ["src/**/*.java"],
    sdk_version: "current",
    static_libs: ["android-support-test"],
    certificate: "platform",
    test_suites: ["device-tests"],
}

Tenga en cuenta el android_test declaración al comienzo indica es una prueba. Incluyendo android_app el contrario indicaría que esto es un lugar de construcción del paquete.

Ajustes

La siguiente configuración obtiene una explicación:

    name: "HelloWorldTests",

El name se requiere ajuste cuando el android_test se especifica el tipo de módulo (al comienzo del bloque). Se da un nombre a su módulo, y el APK resultante se llamará la misma y con un .apk sufijo, por ejemplo, en este caso, lo que resulta apk prueba se denomina como HelloWorldTests.apk . Además, esto también define un nombre de destino para hacer su módulo, por lo que se puede utilizar make [options] <HelloWorldTests> para construir su módulo de prueba y todas sus dependencias.

    static_libs: ["android-support-test"],

Los static_libs configuración indica el sistema de construcción para incorporar los contenidos de los módulos mencionados en el apk resultante del módulo actual. Esto significa que se espera que cada módulo llamado a producir un .jar archivo y su contenido serán utilizados para resolver las referencias de ruta de clases durante el tiempo de compilación, así como incorporado en el apk resultante.

En este ejemplo, las cosas que podrían ser útiles en general para las pruebas:

El android-support-test es el pre-compilados para la biblioteca de soporte Prueba de Android, que incluye el nuevo corredor de prueba AndroidJUnitRunner : un reemplazo para el ya obsoleto incorporado InstrumentationTestRunner , con soporte para junit4 marco de pruebas. Lea más en aplicaciones de prueba en Android .

Si usted está construyendo un nuevo módulo de instrumentación, siempre debe comenzar con el android-support-test biblioteca como su corredor de prueba. El árbol de fuentes plataforma también incluye otros marcos de prueba útil como ub-uiautomator , mockito-target , easymock y más.

    certificate: "platform",

El certificate configuración indica el sistema de construcción para firmar el archivo APK con el mismo certificado como la plataforma central. Esto es necesario si su prueba utiliza un permiso de firma protegida o una API. Tenga en cuenta que esto es adecuado para el control continuo de plataforma, pero no se debe utilizar en módulos de prueba CTS. Tenga en cuenta que este ejemplo utiliza esta configuración de certificado solo con fines ilustrativos: el código de prueba del ejemplo no necesita en realidad que el apk de prueba esté firmado con el certificado de plataforma especial.

Si está escribiendo una instrumentación para su componente que vive fuera del servidor del sistema, es decir, está empaquetada más o menos como un apk de aplicación normal, excepto que está integrada en la imagen del sistema y puede ser una aplicación privilegiada, es probable que su instrumentación lo haga. apuntar al paquete de la aplicación (consulte la sección a continuación sobre el manifiesto) de su componente. En este caso, el archivo MAKE aplicación puede tener su propio certificate de ajuste, y su módulo de instrumentación debe conservar la misma configuración. Esto se debe a que para orientar su instrumentación en la aplicación bajo prueba, su apk de prueba y el apk de la aplicación deben estar firmados con el mismo certificado.

En otros casos, usted no necesita tener esta configuración en absoluto: el sistema de construcción simplemente firmarlo con un valor predeterminado incorporado en el certificado, basado en la variante de construcción, y que por lo general llama El dev-keys .

    test_suites: ["device-tests"],

El test_suites configuración hace que la prueba fácilmente detectable por el instrumento de prueba Federación de Comercio. Aquí se pueden agregar otras suites, como CTS, para que esta prueba se pueda compartir.

${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk

Configuraciones opcionales

Los siguientes ajustes opcionales obtienen una explicación:

    test_config: "path/to/hello_world_test.xml"

El test_config configuración indica el sistema de construcción de su destino de prueba necesita una configuración específica. Por defecto, un AndroidTest.xml junto a la Android.bp se asocia con la config.

    auto_gen_config: true

El auto_gen_config configuración indica si o no para crear la configuración de prueba de forma automática. Si AndroidTest.xml no existe junto a la Android.bp , no tiene que ser establecido en true explícitamente este atributo.

    require_root: true

El require_root configuración indica el sistema de construcción para agregar RootTargetPreparer a la auto generada configuración de prueba. Esto garantiza que la prueba se ejecute con permisos de root.

    test_min_api_level: 29

El test_min_api_level configuración indica el sistema de construcción para agregar MinApiLevelModuleController a la auto generada configuración de prueba. Cuando la Federación de Comercio se ejecuta la configuración de prueba, la prueba será omitido si la propiedad del dispositivo ro.product.first_api_level < test_min_api_level .