Android-maven-plugin, pruebas de instrumentación y testSize
Estoy usando maven para construir, ejecutar e instrumentación probando mis aplicaciones de Android. El framework de pruebas de Android tiene tres marcos de prueba diferentes: @SmallTest , @MediumTest y @LargeTest y android-maven-plugin tiene capacidad para seleccionar el ámbito de prueba a través de testTestSize o el parámetro test / testSize . Este parámetro puede ser uno de small|medium|large
y puede ejecutar las pruebas desde el ámbito relacionado.
Pero, ¿qué puedo hacer si quiero realizar pequeñas y medianas pruebas simultáneamente, no sólo pequeñas o no sólo medio? ¿Existe alguna solución para este problema?
- El IDE no puede abrir diálogo de dependencia de biblioteca (dependencia de Maven)
- ¿Cómo publicar los apks en el Maven Central con gradle?
- Adición de dependencias de biblioteca de terceros a Android Library
- update android-query maven biblioteca dependencia
- Esta dependencia me da dos versiones de un frasco. ¿Cómo puedo solucionar esto?
- La tarea "instalar" de plugin de Gradle Maven no funciona con el proyecto de la biblioteca de Android
- Configuración de Proguard para Android Support v4 22.2.0
- Android Maven Eclipse todavía no puede importar apklib
- Gradle - biblioteca duplicados en dependencias
- Compartir código en Android Studio
- ¿Por qué Gradle necesita un archivo settings.gradle?
- Bintray: No se pueden cargar archivos: el grupo Maven, el artefacto o la versión definidos en el archivo pom no coinciden
- Propiedad de Android maven - manifestmerger
Así es como Android SDK está diseñado y se supone que funciona en este momento, de acuerdo con InstrumentationTestRunner API doc :
Ejecutando todas las pruebas pequeñas: adb shell am instrumento -w -e tamaño pequeño com.android.foo/android.test.InstrumentationTestRunner
Ejecución de todas las pruebas de medio: adb shell am instrumento -w -e tamaño medio com.android.foo/android.test.InstrumentationTestRunner
Ejecución de todas las pruebas de gran tamaño: adb shell am instrumento -w -e tamaño grande com.android.foo/android.test.InstrumentationTestRunner
Incluso si utiliza el comando liso adb para ejecutar su prueba, tiene que usar dos procesos para ejecutar la prueba pequeña y media por separado, una tras otra. Maven Plugin de Android es sólo otro envoltorio del comando adb, por lo que no hay forma de alterar el comportamiento predeterminado a través de la configuración de plugin de AFAIK.
Si lee el InstrumentationTestRunner API doc con más cuidado, notará que existe un uso interesante del comando:
Filtro de ejecución de prueba a las pruebas con la anotación dada: adb shell am instrumento -w -e anotación com.android.foo.MyAnnotation com.android.foo/android.test.InstrumentationTestRunner
Si se utiliza con otras opciones, la prueba resultante contendrá la unión de las dos opciones. Por ejemplo "-e tamaño grande -e anotación com.android.foo.MyAnnotation" se ejecutarán sólo las pruebas con las anotaciones LargeTest y "com.android.foo.MyAnnotation".
La configuración de la anotación se agrega como API experimental (marcada como @hide, para más detalles consulte este historial de versiones ) y no se ha documentado en la lista de opciones del instrumento am . Teóricamente puede crear su propia clase de anotación (vea SmallTest.java como ejemplo), marque todo @MediumTest junto con su @CustomizedTest y utilice tanto el tamaño -e como la anotación -e para lograr lo que desea: ejecute las pruebas de unión de dos anotaciones simultáneamente, Todo en un comando.
Lamentablemente, android-maven-plugin no soporta la configuración de anotaciones, vea la documentación del complemento y el código fuente más reciente . Una posible solución consiste en utilizar exec-maven-plugin para ejecutar el comando plain adb shell am instrument
.
Espero que esto tenga sentido.
Para usar el tamaño de prueba de maven-android, he creado una variable en pom.xml:
... <properties> <config.build.testSize>medium</config.build.testSize> </properties> ...
Y en la construcción, a seguir:
<build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> ... <configuration> <test> <testSize>${config.build.testSize}</testSize> </test> </configuration> ... </plugin> </plugins> </pluginManagement> </build>
Supongo que también puede llegar a esto dando el parámetro android.test.testSize a maven (como mvn install -Dandroid.test.testSize = medium)
Por favor corrija esta variable de maven si estoy equivocado, no encontré en doc todavía. BR, M.
- Plugin de selenio para pruebas de aplicaciones para móviles O cualquier otra herramienta mejor y más adecuada para las pruebas de aplicaciones para móviles
- ¿Hay una manera de convertir una aplicación de Android en una aplicación de escritorio?