studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-resources robotium

programacion - Android raw recurso de prueba



manual de programacion android pdf (2)

Tengo la siguiente estructura de carpetas en Android Studio:

├── androidTest │   ├── java │   └── res │   └── raw │   └── test_file └── main ├── java └── res └── raw    └── app_file

Estoy intentando acceder al recurso test_file que existe en la carpeta raw de los elementos androidTest. Aquí está el código dentro de un caso de prueba de Robotium que hereda de ActivityInstrumentationTestCase2 :

InputStream is = this.getInstrumentation() .getContext() .getResources() .openRawResource(R.raw.test_file);

Android Studio lanza un error de referencia ya que no se puede encontrar el recurso. El error exacto es "No se puede resolver el símbolo test_file".

¿Cómo puedo hacer referencia a este recurso como un caso de prueba, que existe en el paquete de recursos androidTest?


Por defecto, su proyecto androidTest incluirá la clase R de su aplicación, pero los recursos de androidtest se generarán en un archivo separado. Asegúrese de importar la clase R de su proyecto de prueba:

import com.your.package.test.R; [..] getInstrumentation().getContext().getResources().openRawResource(R.raw.test_file);

También puede hacer referencia directamente a la clase R del proyecto de prueba:

getInstrumentation().getContext().getResources().openRawResource(com.your.package.test.R.raw.test_file);


Tenía los recursos de la androidTest en el lugar correcto ( src/androidTest/res ) y todavía no podía acceder a ellos a través de <normal.package>.test.R . Pasé mucho tiempo buscando en Google tratando de descubrir qué estaba pasando ...

Finalmente me tropecé con la respuesta. Si está buildType un buildType donde especificó una applicationIdSuffix , sus archivos están en <applicationId><applicationIdSuffix>.test.R !!!!

es decir

applicationId "com.example.my.app" buildTypes { debug { applicationIdSuffix ".debug" } }

¡Si tiene recursos de prueba de Android en el directorio correcto, entonces solo puede acceder a ellos a través de com.example.my.app.debug.test.R !!!!