Incluir pruebas unitarias y funcionales

Esta sección 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:

  • 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 algunas de las validaciones de preenvío de TF localmente

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 preenvío sin configuración adicional.

Ejecutar pruebas unitarias

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

Dentro de Eclipse, para ejecutar una prueba de unidad individual, simplemente haga clic con el botón 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 la compilación, 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 Federación de Comercio; requieren un dispositivo Android. Todas las pruebas funcionales deben seguir la convención de nomenclatura *FuncTest .

Verifique los resultados de las pruebas unitarias

Al ejecutar run_tradefed_tests.sh , las pruebas unitarias están ejercitando 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 ocurrió 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 pasar, por lo que si ocurre alguna falla en su cambio local, asegúrese de que las pruebas estén arregladas.

Agregar pruebas funcionales

  • Si su prueba funcional involucra un dispositivo (usa 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 colocar sus métodos de prueba en una de las subclases de la suite existente, prefiera agregarla allí. De lo contrario, siéntase libre de agregar una nueva clase a la suite aplicable.

  • En cualquier caso, al agregarlo a la suite, su prueba se ejecuta automáticamente en la canalización 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. Establezca 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 .

Ejecución de pruebas de preenvío de TF contra cambios locales

Si desea ejecutar de manera similar a la presentación previa de TF, use 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 está rompiendo ninguna prueba.

Las pruebas de preenvío de TF son un superconjunto de las pruebas unitarias anteriores, pero es más lento ejecutarlas. 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.