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
!!!!