Pruebas de unidad en Android Studio 0.8
BREAKING NEWS: Android Studio 1.1.0 ahora tiene soporte incorporado para las pruebas de unidad. Más información aquí: https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support
Al principio sé que hay preguntas muy, muy, muy similares (incluso aquí en SO). La mayoría de ellos están terriblemente anticuados, así que estoy haciendo una nueva pregunta que debería estar actualizada para Android Studio 0.8.x.
Sé que hay algunas bibliotecas que funcionan de alguna manera, pero en casi cada caso no tenía evidencia de que la información estuviera actualizada. Sé que hay, por ejemplo, roboeléctrico , también hay algunos desaconsejados Jake Wharton como gradle-android-test-plugin o doble-espresso , también encontré la biblioteca RoboSpock y Deckard . Pero ninguno de ellos parece tener ninguna integración con Android Studio.
Después de una larga búsqueda encontré estos dos errores en todas las implementaciones:
- El classpath está roto y necesita ser hackeado para obtener junit running
- Las pruebas junit no se pueden depurar
Lo que estoy buscando:
- Quiero probar automáticamente un algoritmo (que es java llano)
- Quiero comprobar la integración en mi aplicación Android funciona
- Quiero una integración en Android Studio para que pueda saltar al código de un stacktrace
- Quiero paso paso el código de prueba
He encontrado también en algún lugar un hack agradable que ejecutar las pruebas en gradle como una tarea externa y empujó los resultados en AS para que los resultados se pudieron mostrar, pero por desgracia no puedo encontrar ese enlace de nuevo (y si no recuerdo correctamente no funcionó para mi).
¿Tienen algunas referencias frescas? ¿Funciona para ti?
- Cómo emular onLowMemory ()?
- No se puede resolver la actividad para: Intención
- Granja de dispositivos AWS con Espresso y JUnit4
- Android: cómo obtener el contexto cuando se prueba con ActivityInstrumentationTestCase2?
- ¿Por qué realizar pruebas en un proyecto separado, en lugar de carpeta?
- Ejecutar pruebas de unidad en Guardar con Android Studio
- Problemas al configurar el entorno de prueba de App Engine
- Enredado con la prueba de Google
Tienes que editar el archivo .iml que genera Android Studio para apuntar a tu directorio de clases de prueba y también para corregir el error Stub de Junit. Actualmente no hay trabajo alrededor para esto.
Gradlectric es una muestra que utiliza el Robolectric Gradle Plugin para ejecutar pruebas de unidad en Android Studio.
Aquí te pierdes un ejemplo de configuración del proyecto https://github.com/nenick/android-gradle-template
Pero ninguno de ellos parece tener ninguna integración con Android Studio.
Este proyecto se mantiene para android studio
El classpath está roto y necesita ser hackeado para obtener junit running
Los scripts gradle arreglarán el classpath
Las pruebas junit no se pueden depurar
Prueba un funcionamiento dentro de AS por lo que son fáciles de depurar
Este proyecto mío no cubre todas sus peticiones, sino un buen número de ellas. Cubre un caso de prueba de Java predeterminado y algunas pruebas interactúan con Vistas.
El proyecto raíz utiliza Travis CI, que utiliza gradle connectedCheck
para ejecutar las pruebas. Para poder depurar las pruebas, sólo puede crear una configuración de ejecución de prueba en AS y ejecutarla en el modo de depuración.
Tenga en cuenta que esto no utiliza ningún marco de pruebas Android especial como robolectric.
Usted puede encontrar un tenedor de Jake Wharton de gradle-android-test-plugin aquí . Esto es compatible con AS 0.6 y es mantenido regularmente por Robolectric. Puedes ver este proyecto para configurar Robolectric en Android Studio con la ayuda de este complemento. Puede lograr un poco de funcionalidad que mencionó con la ayuda de robolectric-gradle-plugin. También puede depurar el código de prueba con AS.
- ¿Cómo puedo hacer una animación de log de introducción como la aplicación de skype?
- MediaPlayer se detiene y se reinicia