Cómo incluir pruebas funcionales y de unidades

En esta sección, se explica cómo realizar y contribuir a las pruebas de la Federación de Comercio después de realizar un cambio en el proyecto. Esto incluye lo siguiente:

  • Dónde agregar las nuevas clases de prueba de unidades
  • Cómo ejecutar pruebas de unidades en Eclipse y fuera del IDE de Eclipse
  • Dónde agregar pruebas funcionales
  • Ejecuta las pruebas funcionales
  • Ejecuta de forma local parte de la validación del envío previo de TF

Cómo agregar pruebas de unidades

En el Proyecto de código abierto de Android (AOSP), agrega la clase de pruebas de unidades: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

IMPORTANTE: Si agregas las nuevas clases de prueba de unidades a estas ubicaciones, obtendrás la siguiente información: se ejecutan automáticamente en el envío previo sin configuración adicional.

Cómo ejecutar pruebas de unidades

Todas las pruebas de unidades y pruebas funcionales del AOSP para la Federación de Comercio se encuentran en el tools/tradefederation/core/tests en un proyecto final.

En Eclipse, para ejecutar una prueba de una unidad individual, haz clic con el botón derecho sobre la prueba y selecciona Ejecutar como > JUnit Para ejecutar todas las pruebas de unidades, ejecuta el siguiente comando: com.android.tradefed.UnitTests.

También puedes iniciar la prueba de unidades desde la línea de comandos de la fuente de Tradefed después de la construcción, así: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Las pruebas de unidades se pueden ejecutar de manera independiente, pero las pruebas funcionales deben ejecutarse mediante el uso de la Federación de Comercio. requieren un dispositivo Android. Todas las funciones las pruebas deben seguir la convención de nomenclatura *FuncTest.

Cómo verificar los resultados de las pruebas de unidades

Cuando se ejecuta run_tradefed_tests.sh, las pruebas de unidades ejecutan todas las partes de el agente de prueba, incluidas algunas condiciones de error. Se imprimirá un resultado detallado a la consola, incluidos los seguimientos de pila.

El resumen final de los resultados indicará si se produjo un error o no.

Ejemplo de resumen final en la consola:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

Todas las pruebas se mantienen para ser exitosas, por lo que, si se produce alguna falla en tu cambio local, asegúrate de que se hayan corregido las pruebas.

Cómo agregar pruebas funcionales

  • Si tu prueba funcional involucra un dispositivo (usa cualquier API de ITestDevice), la suite se encuentra en com.android.tradefed.DeviceFuncTests. De lo contrario, la definición del paquete se encuentra en com.android.tradefed.FuncTests.

  • Si tus métodos de prueba tienen sentido colocarlos en una de las subclases existentes del paquete, prefiero agregarlo allí. De lo contrario, siéntete libre de agregar una clase nueva al curso suite.

  • En cualquier caso, si la agregas al paquete, la prueba se ejecuta automáticamente en la canalización de CI con otras pruebas funcionales.

Ejecutar pruebas funcionales

Para ejecutar una prueba funcional desde Eclipse, haz lo siguiente:

  1. Asegúrate de que un dispositivo esté conectado al host y a adb, y, si es necesario, Las fastboot están en la ruta de acceso de Eclipse. La forma más sencilla de hacerlo es lanzar Eclipse desde una configuración de shell con la RUTA DE ACCESO adecuada.
  2. Crea una aplicación de Java. Ejecuta la configuración a través de Ejecutar > Ejecutar parámetros de configuración.
  3. Establece el proyecto en tradefed-tests y la clase principal en com.android.tradefed.command.CommandRunner
  4. Ejecuta m tradefed-all.
  5. Proporciona los siguientes argumentos de línea de comandos en la pestaña Arguments: host --class <full path of test class to run>
  6. Haz clic en Ejecutar.

Para ejecutar pruebas funcionales fuera de Eclipse.

  1. Crea la Federación de Comercio.
  2. Conecta un dispositivo Android al host.
  3. Run tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. De manera opcional, agrega --serial <serial no> para elegir el dispositivo. aparece en el resultado de adb devices.

Ejecuta pruebas previas al envío de TF con cambios locales

Si quieres que la ejecución sea similar a la del envío previo de TF, usa el siguiente comando:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Esto activará todas las pruebas de envío previo de TF en tu TF compilado localmente ayudarte a validar que el cambio no rompe ninguna prueba.

Las pruebas previas al envío de TF son un superconjunto de las pruebas de unidades mencionadas anteriormente, pero son más lentas ejecutarlas. Por eso, se recomienda ejecutar las pruebas de unidades durante el desarrollo de una validación más rápida y ejecutar los envíos previos antes de subir la lista de cambios.