¿Existe alguna manera de ejecutar solo un conjunto específico de pruebas en un proyecto de Android Gradle?
-
21-12-2019 - |
Pregunta
Tengo un proyecto de Android/Gradle.Siempre que quiero ejecutar pruebas, ejecuto:
./gradlew connectedInstrumentTest
que ejecuta todas mis pruebas en la carpeta de prueba de mi proyecto.
Mi carpeta de pruebas tiene varias pruebas de automatización y pruebas no automatizadas.Lo que más me interesa es ejecutar las pruebas rápidas que no son de automatización sin las pruebas de automatización lentas.
¿Existe alguna manera de ejecutar solo un conjunto específico de pruebas, como las de una clase específica o algo similar?Básicamente estoy preguntando sobre cualquier tipo de separación para poder elegir ejecutar solo algunas pruebas cuando quiera.
Creó un proyecto de muestra aquí.
Editar local.properties
para apuntar a su SDK de Android.
A continuación, inicie un emulador o conecte un teléfono a su computadora.Luego puedes ejecutar pruebas usando ./gradlew connectedInstrumentTest --info
.Esto ejecuta todas las pruebas.
Lo que no puedo entender es cómo ejecutar pruebas sólo en, digamos, una clase y no en todas las pruebas.
Solución
Desde el complemento Android Gradle 1.3.0
A partir de la versión 1.3.0, puede (¡por fin!) especificar los argumentos que el complemento Gradle de Android debe pasar al InstrumentationTestRunner
.
Por ejemplo, si desea ejecutar solo las pruebas anotadas con @SmallTest
e ignorar a los demás:
android {
//....
defaultConfig {
//....
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArgument "size", "small"
}
}
Antigua soluciónAntes del complemento 1.3.0 no era posible hacer eso, pero encontré una pequeña solución.Básicamente he anotado con el @SmallTest
anotación de las pruebas rápidas y uso de una subclase personalizada del InstrumentationTestRunner
Puedo ejecutar solo ellos y no toda la suite.
Puedes encontrar el código de ejemplo en esta esencia.
Otros consejos
Sí, por favor, tenga un aspecto aquí .También debe trabajar con un proyecto Android.Desafortunadamente, por lo que sé, no hay forma de pellar un solo método: puede limitar solo a su traje completo.
También puede instalar el traje de prueba en el dispositivo y ejecutarlo manualmente a través de ADB.Consulte Android docs