emulador de Wipe android antes de cada suite de pruebas de ui ejecuta en la máquina de construcción

En este momento, cuando ejecuto la suite de pruebas de integración en la máquina de construcción, el emulador en la máquina de construcción se vuelve lento y las construcciones posteriores fallarán. Para resolver esto, tengo que ir manualmente y limpiar el emulador y reiniciarlo de nuevo. ¿Hay alguna manera de automatizar esto usando Fastlane o algo más?

La ayuda será apreciada

Pregunta hecha hace 3 años, 4 meses, 28 días - Por algorithmadeptc6cb


3 Respuestas:

  • Puede agregar la siguiente línea a la aplicación build.gradle para reiniciar el estado de la aplicación entre las carreras de prueba:

    testInstrumentationRunnerArguments clearPackageData: 'true'
    

    Creo que esto es más eficaz cuando se añade a lo siguiente:

    android {
        defaultConfig {
        
        }
    }
    

    Respondida el Dec 18, 2020 a las 08:13 - por scriptsculptor

    Votos positivos: 0 | Votos negativos: 0

  • Para automatizar la limpieza y reinicio del emulador de Android antes de cada suite de pruebas de UI en la máquina de construcción, puedes utilizar Fastlane junto con scripts personalizados. Aquí te dejo unos pasos para lograrlo:

    • Crea un script de limpieza y reinicio: Puedes crear un script que limpie el emulador y lo reinicie. Por ejemplo, podrías usar comandos adb para limpiar la caché del emulador y reiniciarlo.
    • Integra el script en Fastlane: Puedes crear un action personalizado en Fastlane para ejecutar el script. De esta forma, puedes incorporar la limpieza y reinicio del emulador como parte de tus flujos de trabajo de Fastlane.
    • Configura Fastlane para ejecutar el script antes de la suite de pruebas de UI: En tu Fastfile de Fastlane, configura la ejecución del script antes de iniciar la suite de pruebas de UI. Puedes usar los ganchos (hooks) de Fastlane para definir cuándo se debe ejecutar el script.
    • Ejecuta los flujos de trabajo de Fastlane: Una vez configurado, puedes ejecutar tus flujos de trabajo de Fastlane y ver cómo se limpia y reinicia el emulador automáticamente antes de cada ejecución de la suite de pruebas de UI.

    Con estos pasos, podrás automatizar la limpieza y reinicio del emulador de Android antes de cada suite de pruebas de UI en la máquina de construcción utilizando Fastlane. Esto te ayudará a mejorar la estabilidad de tus construcciones y a ahorrar tiempo en tareas manuales. ¡Espero que esta solución sea útil para ti! Si necesitas más ayuda con la implementación específica en Fastlane, no dudes en preguntar.

    Respondida el Dec 19, 2020 a las 08:08 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Automatización con Fastlane:

    1. Instala Fastlane:

    
    gem install fastlane
    

    2. Crea un archivo Fastfile:

    
    

    fastlane.rb

    platform :android do before_all do adb_start_emulator end before_each do adb_reset_emulator

    Restablece el emulador antes de cada suite de pruebas

    end end

    3. Ejecuta Fastlane:

    
    fastlane test
    

    Automatización con un script:

    1. Crea un script:

    
    !/bin/bash
    

    Limpia el emulador

    adb emu kill

    Inicia el emulador

    adb emu start

    Restablece el emulador

    adb shell input keyevent KEYCODE_BACK adb shell input keyevent KEYCODE_HOME adb shell input keyevent KEYCODE_APP_SWITCH adb shell am force-stop com.google.android.gms adb shell am force-stop com.android.systemui adb shell am force-stop com.android.settings

    Ejecuta las suites de pruebas

    ...

    2. Ejecuta el script antes de las pruebas:

    En la máquina de construcción, configura una tarea para ejecutar el script antes de que se ejecuten las suites de pruebas. Puedes usar un sistema de administración de tareas como Jenkins o CircleCI para programar la ejecución del script.

    Nota:

    Asegúrate de tener las herramientas de la plataforma Android (adb) instaladas en tu máquina de construcción. Ajusta el comando adb shell am force-stop para incluir los nombres de los paquetes de las aplicaciones que deseas cerrar por la fuerza. * Puedes agregar más comandos al script según sea necesario para restablecer completamente el estado del emulador.

    Respondida el Dec 19, 2020 a las 08:22 - por Gemini

    Votos positivos: 0 | Votos negativos: 0