Cómo incluir pruebas funcionales y de unidades

En esta sección, se explica cómo ejecutar 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 en: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

IMPORTANTE: Si agregas tus nuevas clases de prueba de unidades a estas ubicaciones, estas se ejecutarán automáticamente en la etapa previa al envío sin configuración adicional.

Ejecuta pruebas de unidades

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

En Eclipse, para ejecutar una prueba de unidad individual, haz clic con el botón derecho en la prueba y selecciona Run As > JUnit. Para ejecutar todas las pruebas de unidades, ejecuta el conjunto com.android.tradefed.UnitTests.

También puedes iniciar la prueba de unidad desde la línea de comandos en el árbol de fuentes de Tradefed después de la compilación, de la siguiente manera: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Las pruebas de unidades se pueden ejecutar de forma independiente, pero las pruebas funcionales deben ejecutarse con Trade Federation, ya que requieren un dispositivo Android. Todas las pruebas funcionales deben seguir la convención de nombres *FuncTest.

Cómo verificar los resultados de las pruebas de unidades

Cuando se ejecuta run_tradefed_tests.sh, las pruebas de unidades ejercitan todas las partes del conjunto de pruebas, incluidas algunas condiciones de error. Imprimirá un resultado detallado en 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 que se aprueben, por lo que, si se produce algún error en tu cambio local, asegúrate de que se corrijan las pruebas.

Agrega pruebas funcionales

  • Si tu prueba funcional incluye un dispositivo (usa cualquier API de ITestDevice), la definición del paquete 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 para colocarlos en una de las subclases del paquete existente, es mejor que los agregues allí. De lo contrario, no dudes en agregar una clase nueva al paquete correspondiente.

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

Ejecuta pruebas funcionales

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

  1. Asegúrate de que un dispositivo esté conectado al host y de que adb y, si es necesario, fastboot estén en la ruta de acceso de Eclipse. La forma más fácil de hacerlo es iniciar Eclipse desde una configuración de shell con la PATH correcta.
  2. Crea una aplicación de Java. Ejecuta la configuración a través de Run > Run Configurations.
  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 Argumentos: 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> al final del dispositivo como aparece en el resultado de adb devices para elegirlo.

Ejecuta pruebas previas al envío de TF en los cambios locales

Si quieres ejecutarlo de manera similar a la versión previa de TF, usa lo siguiente:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Esto activará todas las pruebas previas al envío de TF en tu TF compilado de forma local para ayudarte a validar que tu cambio no esté invalidando ninguna prueba.

Las pruebas de envío previo de TF son un superconjunto de las pruebas de unidades mencionadas anteriormente, pero su ejecución es más lenta. Por lo tanto, se recomienda ejecutar las pruebas de unidades durante el desarrollo para una validación más rápida y ejecutar las pruebas previas al envío antes de subir el CL.