¿Cuál es la diferencia entre las carpetas src / androidtest y src / test?

119

En un proyecto, en Android Studio, de forma predeterminada, hay dos carpetas de prueba.

El primero es src/androidTest. Esta carpeta ya existía en la versión anterior de Android Studio. Sin embargo, ahora hay una nueva carpeta de prueba, por defecto src/test, y una nueva dependencia testCompile 'junit: junit: 4.12'en build.gradle.

¿Qué carpeta utilizo para las pruebas? ¿Cuáles son las diferencias entre los dos?

lopez.mikhael
fuente

Respuestas:

134

src/androidTest es para pruebas unitarias que involucran instrumentación de Android.

src/testes para pruebas unitarias puras que no involucran el marco de Android. Puede ejecutar pruebas aquí sin ejecutarlas en un dispositivo real o en un emulador.

Puede utilizar ambas carpetas. Use el primero para probar el código que usa el marco de Android. Utilice el segundo para probar el código que son clases java puras. Los métodos para escribir pruebas son casi los mismos.

Más información aquí: http://developer.android.com/tools/testing/testing_android.html

Bipi
fuente
URL redirigida a: developer.android.com/studio/test/index.html
Guillaume Husta
Me acabas de salvar el día
C Johnson
¿qué pasa con androidTestDebug?
the_prole
47

Una gran fuente de información relacionada con las pruebas de Android en general es la página de desarrolladores Mejores prácticas para pruebas :

  • Pruebas unitarias locales ( /src/test/java/)

Pruebas unitarias que se ejecutan localmente en la máquina virtual Java (JVM). Utilice estas pruebas para minimizar el tiempo de ejecución cuando sus pruebas no tengan dependencias del marco de Android o cuando pueda simular las dependencias del marco de Android.

  • Pruebas instrumentadas ( /src/androidTest/java/)

Pruebas unitarias que se ejecutan en un dispositivo o emulador Android. Estas pruebas tienen acceso a la información de la instrumentación, como el contexto de la aplicación que está probando. Utilice estas pruebas cuando sus pruebas tengan dependencias de Android que los objetos simulados no pueden satisfacer.

https://developer.android.com/training/testing/start/index.html

Leszek Jasek
fuente