Marco de prueba de gradle de Android: una sola clase
¿Es posible ejecutar una sola clase de prueba usando el nuevo marco de compilación de gradle de Android?
Tengo un paquete de prueba que tiene varias clases de prueba (todas ellas son clases de InstrumentationTestCase). He podido configurar mi archivo build.gradle para ejecutar el paquete de prueba
- Cómo probar JUnit ContentResolver.notifyChange
- ¿Es posible probar una actividad abstracta con Robolectric
- ¿Qué hace la propiedad testOptions.animationsDisabled en el complemento Android Gradle?
- Prueba de una clase Fragment en aislamiento usando Mockito
- Pasando Variables a través de la línea de comandos con Spoon / Espresso (android-test-kit)
defaultConfig{ testPackageName "com.company.product.tests" testInstrumentationRunner "android.test.InstrumentationTestRunner" }
¿Pero hay una manera de probar solamente un caso de prueba en ese paquete? De lo contrario voy a estar usando la edad de edad adb shell am instrument -w .......
PD: No tengo tiempo ahora para cambiar a Roboeléctrico, pero sí veo que es prácticamente el marco defacto hoy en día.
- Usando android gradle + dagger para ejecutar instrumentTests
- Prueba instrumental de una vista en MVP
- Roboelectric 3.0 fragmentos de prueba
- Gradle connectedAndroidTest devuelve "No se encontró ninguna prueba", sin embargo, el shell adb shell puede encontrar las pruebas
- Prueba de unidad de Android en el proyecto
- Uso de Espresso ¿Cómo puedo comprobar el número de elementos en mi alerta Cuadro de diálogo
- Cómo automatizar las pruebas de actualización para android
- Espresso - Aserción de un TextView con datos cargados asíncronos
Uso de android.test.InstrumentationTestRunner
no, esto no es posible. Usted, sin embargo, tiene opciones:
Corredor de pruebas personalizado
- Extienda
android.test.InstrumentationTestRunner
- Agregue un
buildConfigField 'String', 'TEST_NAME', '${testName}'
, dondetestName
es'"${project.properties.get("test")}"'
- En tu corredor, solo ejecuta pruebas que coincidan con BuildConfig.TEST_NAME (si es nula, ejecuta todas las pruebas)
- Reemplace el
testInstrumentationRunner
con su corredor personalizado - Ejecutar pruebas con
./gradlew connectedCheck -Ptest=com.example.Test.testSomething
Utilizar cuchara
Spoon es una extensión de prueba excelente que, entre otras cosas (como hermosos informes de pruebas de múltiples dispositivos), le permite ejecutar pruebas individuales. Ya que estás usando gradle, recomiendo el Plugin de Gradle de Cuchara , que tiene un ejemplo de exactamente lo que quieres hacer en su README.
Actualización: Ejecutar pruebas unitarias individuales con el complemento Android Gradle
Con la adición de soporte de pruebas de unidad, Android ahora admite pruebas individuales de ejecución.
Esto es sólo una tarea de anclaje, las tareas de prueba reales se llaman
testDebug
ytestReleas
e etc Si desea ejecutar sólo algunas pruebas, utilizando elgradle --tests
, puede hacerlo corriendo./gradlew testDebug --tests='*.MyTestClass'
.
Fuente
Edit : También debo añadir que Spoon es un reemplazo para las pruebas en ejecución. No tendrás que modificar nada, excepto algunas líneas en tu script de compilación para usarlo.
Como se ha respondido en https://stackoverflow.com/a/32603798 ahora hay android.testInstrumentationRunnerArguments.class
- Cómo configurar localidad personalizada para idiomas regionales indios en el emulador de Android
- ¿Cuál es el equivalente androide de java.awt.geom.Area?