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?

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.

  • AssertionFailedError: <class> no tiene constructor público
  • Obtención de contexto en AndroidTestCase o InstrumentationTestCase en la función Prueba de unidad de Android Studio
  • ¿Cómo probar un AlertDialog en Android?
  • Prueba de unidad de ciclo de vida de actividad
  • Prueba de unidad de Android: subclase InstrumentationTestRunner no encontrada
  • No se pueden construir pruebas con Gradle (decard-gradle)
  • Cómo probar métodos de unidad que interactúan con clases de sistema (o Android)
  • Android Studio Gradle androidTest vs instrumentTest
  • Crear proyecto de prueba de android en intellij idea 13 community edition
  • Acceso al contexto de la aplicación desde TestSuite en Setup () antes de llamar a getActivity ()
  • Prueba Unitaria de Retrofit 2 api call con Mockito
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.