Si yo:
- Cree un nuevo proyecto de Android Studio 3.5.1 (Kotlin, API 21, plantilla "Actividad vacía")
- Ejecuta la aplicación desde el IDE
- Confirme que la aplicación está instalada y tiene un ícono de inicio
- Ejecute la
connectedAndroidDebugTesttarea Gradle (desde Android Studio o víagradlew)
La aplicación termina siendo desinstalada por la prueba de funcionamiento. Obtengo ese comportamiento incluso si agrego un testApplicationIdvalor para defaultConfigque el código de prueba use una ID de aplicación diferente.
¿Cómo detengo ese comportamiento? ¿Cómo puedo ejecutar pruebas instrumentadas desde la línea de comandos, sin perturbar la instalación de una aplicación existente?
android
android-gradle-plugin
CommonsWare
fuente
fuente

Respuestas:
La
connectedChecktarea tiene el tipoDeviceProviderInstrumentTestTask. Para una prueba simple ejecutada en un dispositivo, usa aSimpleTestRunner, que a su vez usa aSimpleTestRunnablepara ejecutar realmente la prueba. Aquí encontrarás una estructura deNo estoy completamente seguro de haber encontrado las implementaciones más recientes, pero este comportamiento exacto se remonta a varios años. Así que supongo que no puedes lograr lo que estás pidiendo.
fuente
Tal vez intente ejecutarlo de
adbesta manera:adb shell am instrument -w com.android.demo.app.tests/android.support.test.runner.AndroidJUnitRunnerNo desinstalará su aplicación.
aquí se describe con más detalles.
fuente
createDebugCoverageReport, de la cual dependeconnectedAndroidDebugTest. Por lo tanto, no puedo evitarconnectedAndroidDebugTest, salvo reescribir de alguna manera elcreateDebugCoverageReport.am instrumentopciones de comando adb que puede usaram instrument. Y puede ejecutar un informe de cobertura a través de adb con la ayuda de laemmaopción establecida entrue. También puede cambiar un archivo de destino del informe de cobertura con la ayuda de lacoverageFileopción. Espero eso ayude.La instrumentación instala 2 APK: el APK bajo prueba y el APK con el código de prueba.
También desinstala ambos APK antes de intentar instalar los nuevos y no sé si es posible evitar la desinstalación.
testApplicationIdsolo cambia el ID de la aplicación para el APK con el código de prueba (que normalmente es el mismo que para el APK principal con ".test" adjunto), el ID de la aplicación del APK bajo prueba sigue siendo el mismo. Pero es posible crear buildType por separado para el APK bajo prueba (con exactamente la misma configuración que el tipo de compilación de depuración) y usarlo.Entonces
connectedAndroidXYZTestpodría usarse para ejecutar las pruebas (ocreateXYZCoverageReport).fuente
XYZen cuenta el tipo de compilación con ese código.BuildConfigclase.