Incluye pruebas unitarias y funcionales

Esta sección explica cómo ejecutar y contribuir a las pruebas de Trade Federation después de realizar un cambio en el proyecto. Esto incluye:

  • Dónde agregar las nuevas clases de prueba unitaria
  • Ejecución de pruebas unitarias en Eclipse y fuera del IDE de Eclipse
  • Dónde agregar pruebas funcionales
  • Ejecutando las pruebas funcionales.
  • Ejecutar localmente parte de la validación previa al envío de TF

Agregar pruebas unitarias

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

IMPORTANTE: Agregar sus nuevas clases de prueba unitaria a estas ubicaciones hará que se ejecuten automáticamente en el envío previo sin configuración adicional.

Ejecutar pruebas unitarias

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

Dentro de Eclipse, para ejecutar una prueba unitaria individual, simplemente haga clic derecho en la prueba y seleccione Ejecutar como > JUnit . Para ejecutar todas las pruebas unitarias, ejecute la suite com.android.tradefed.UnitTests .

También puede iniciar la prueba unitaria desde la línea de comando en el árbol de fuentes de Tradefed después de compilarla, así: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Las pruebas unitarias se pueden ejecutar de forma independiente, pero las pruebas funcionales deben ejecutarse utilizando la propia Trade Federation; Requieren un dispositivo Android. Todas las pruebas funcionales deben seguir la convención de nomenclatura *FuncTest .

Verificar los resultados de las pruebas unitarias

Cuando se ejecuta run_tradefed_tests.sh , las pruebas unitarias ejercitan todas las partes del arnés de prueba, incluidas algunas condiciones de error. Imprimirá una salida detallada en la consola, incluidos los seguimientos de la pila.

El resumen final de los resultados indicará si se produjo un fallo 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 pasen, por lo que si ocurre alguna falla en su cambio local, asegúrese de que las pruebas estén reparadas.

Agregar pruebas funcionales

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

  • Si tiene sentido incluir sus métodos de prueba en una de las subclases de la suite existente, prefiera agregarlos allí. De lo contrario, no dude en agregar una nueva clase al conjunto correspondiente.

  • En cualquier caso, al agregarlo al conjunto, su prueba se ejecuta automáticamente en el proceso de CI con las otras pruebas funcionales.

Ejecutar pruebas funcionales

Para ejecutar una prueba funcional desde Eclipse:

  1. Asegúrese de que un dispositivo esté conectado al host y que adb y, si es necesario, fastboot estén en la RUTA de Eclipse. La forma más sencilla de hacer esto es iniciar Eclipse desde una configuración de shell con la RUTA adecuada.
  2. Cree una aplicación Java. Ejecute la configuración a través de Ejecutar > Ejecutar configuraciones .
  3. Configure el proyecto en tradefed-tests y la clase principal en com.android.tradefed.command.CommandRunner .
  4. Ejecute m tradefed-all .
  5. Proporcione los siguientes argumentos de línea de comando en la pestaña Argumentos : host --class <full path of test class to run>
  6. Haga clic en Ejecutar .

Para ejecutar pruebas funcionales fuera de Eclipse.

  1. Construir Federación de Comercio.
  2. Conecte un dispositivo Android al host.
  3. Ejecute tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Opcionalmente, elija el dispositivo agregando --serial <serial no> tal como aparece en la salida de adb devices .

Ejecute pruebas de envío previo de TF contra cambios locales

Si desea ejecutar de forma similar al envío previo de TF, utilice esto:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Esto activará todas las pruebas de envío previo de TF contra su TF creado localmente para ayudarlo a validar que su cambio no infringe ninguna prueba.

Las pruebas de envío previo de TF son un superconjunto de las pruebas unitarias anteriores, pero su ejecución es más lenta. Por lo tanto, se recomienda ejecutar las pruebas unitarias durante el desarrollo para una validación más rápida y ejecutar los envíos previos antes de cargar el CL.