La compatibilidad con la prueba de unidades Android no funciona en los módulos de la biblioteca de Android

Estoy escribiendo ensayos junit en el proyecto android usando la nueva unidad de soporte de prueba http://tools.android.com/tech-docs/unit-testing-support .

Mientras que las pruebas de unidad se ejecutan en el módulo 'com.android.application' perfectamente, pero siempre fallan en los módulos 'com.android.library'. Esto no se ha documentado en http://tools.android.com/tech-docs/unit-testing-support . Así que me pregunto si soy el culpable.

Cuando escribo esas pruebas en los módulos de la biblioteca, las pruebas no pueden encontrar las clases en el módulo y siempre da los siguientes errores:

package does not exist error: cannot find symbol 

El soporte de la prueba de la unidad del androide está en la fase experimental ahora mismo, pero hay una solución a ella.

ACTUALIZAR

He añadido este problema a android issue tracker https://code.google.com/p/android/issues/detail?id=161038

Parece que la tarea de compilar las pruebas de unidad no depende de la tarea de compilar el código de la biblioteca. Lo siguiente lo arregló para mí:

 afterEvaluate { tasks['assembleDebugUnitTest'].dependsOn(tasks['assembleDebug']) } 

Hago las pruebas usando

 ./gradlew testDebug 

Si no desea modificar su build.gradle , especifique manualmente la tarea assembleDebug en la línea de comandos también debe hacer el truco:

 ./gradlew assembleDebug testDebug 

En mi proyecto de biblioteca de Android también no pude obtener las pruebas en ejecución. Lo que hice fue crear una aplicación de prueba que utiliza la biblioteca y escribió pruebas en la aplicación que llaman a los métodos de la biblioteca.

Esto podría no ser la solución ideal, pero fue la forma en que conseguimos que esto funcione.

Echa un vistazo aquí https://github.com/nenick/AndroidStudioAndRobolectric

Allí puede ejecutar pruebas de unidad en bibliotecas y sabores. Y no, no es necesario usar Robolectric como Gaurav Vashisth declaró. Puedes si quieres.

A continuación se muestra un ejemplo de prueba JUnit en un módulo de biblioteca

  • Prueba de RxJava2 doOnComplete ()
  • Módulo de prueba de inyección con dagger2
  • Cómo escribir una prueba de unidad para un controlador de excepción de subprocesos no detectados.
  • Diferencia entre el método runOnUiThread () y la anotación @UiThreadTest
  • Android JUnit4 Pruebas - ¿Dónde obtener el contexto de?
  • Unidad que prueba la lógica de la aplicación de Android
  • Prueba de la unidad de Android que no informa Fallando con error ()
  • Unidad de pruebas de aplicaciones de Android en Eclipse + jUnit - Prueba de ejecución falló: Prueba de ejecución incompleta. Se esperan 1 pruebas, recibidas 0
  • Prueba de la unidad Android - Problemas de resolución y verificación
  • ¿Cómo probar la clase usando resolver contenido / proveedor?
  • Pruebas unitarias con Android Studio y Gradle?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.