Incluye pruebas de unidades y funcionales

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

  • Dónde agregar las nuevas clases de pruebas de unidades
  • Ejecuta pruebas de unidades en Eclipse y fuera del IDE de Eclipse
  • Dónde agregar pruebas funcionales
  • Cómo ejecutar las pruebas funcionales
  • Ejecuta algunas de las validaciones previas al envío de TF de forma local

Agrega 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 pruebas de unidades a estas ubicaciones, se ejecutarán automáticamente en la verificación previa sin necesidad de configuración adicional.

Ejecuta pruebas de unidades

Todas las pruebas de unidades y las pruebas funcionales del AOSP para Trade Federation se encuentran en el proyecto tools/tradefederation/core/tests.

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

También puedes iniciar la prueba de unidades desde la línea de comandos en el árbol de código fuente 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 se deben ejecutar con Trade Federation, ya que requieren un dispositivo Android. Todas las pruebas funcionales deben seguir la convención de nombres *FuncTest.

Verifica los resultados de las pruebas de unidades

Cuando se ejecuta run_tradefed_tests.sh, las pruebas de unidades ejercitan todas las partes del arnés de prueba, 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 una falla 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 superen, 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 involucra un dispositivo (usa cualquier API de ITestDevice), la definición del conjunto de pruebas 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 en una de las subclases existentes del conjunto, es preferible agregarlos allí. De lo contrario, puedes agregar una clase nueva al conjunto de pruebas aplicable.

  • En cualquier caso, si la agregas al paquete, tu prueba se ejecutará automáticamente en la canalización de CI junto 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 ruta de acceso PATH adecuada.
  2. Crea una aplicación de Java. Configuración de ejecució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 Arguments: host --class <full path of test class to run>
  6. Haz clic en Ejecutar.

Ejecutar pruebas funcionales fuera de Eclipse

  1. Construye 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, puedes elegir el dispositivo agregando --serial <serial no> tal como aparece en el resultado de adb devices.

Ejecuta pruebas previas a la confirmación de TF en los cambios locales

Si deseas ejecutar la verificación previa a la confirmación de TF de manera similar, 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 compilación local de TF para ayudarte a validar que tu cambio no interrumpa ninguna prueba.

Las pruebas previas al envío de TF son un superconjunto de las pruebas de unidades anteriores, pero son más lentas de ejecutar. 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.