android resources android-resources android-testing

Agregar recursos de diseño a androidTest



resources android-resources (2)

¡Eso es fácil! En general, solo debe colocar sus recursos en la carpeta src/androidTest/res . ¡Y eso es! Luego puede usarlo en sus archivos src/androidTest/java . Sí, no puede usar diseños de prueba en su APK de producción, pero puede usar los diseños de prueba en su APK de prueba .

Hay algunos problemas que pueden confundirte. Por ejemplo, el autocompletado funciona bien no muy a menudo, pero, de todos modos, se construye y funciona.

Recientemente escribí control personalizado para EditText enmascarado, por lo que no quiero poner ninguna actividad en la biblioteca, pero sí quiero tener una actividad para verificar la vista y quiero inflarlo desde XML. Puedes ver el código completo en la página de Github, aquí hay algunos momentos clave:

$ tree androidTest/ androidTest/ ├── AndroidManifest.xml ├── java │   └── ru │   └── egslava │   └── lib_phone │   ├── MainActivityTest.java │   ├── TestActivity.java │   └── actions │   ├── HintViewAction.java │   ├── KeepHintViewAction.java │   └── SetTextViewAction.java └── res ├── layout │   └── activity_main.xml └── values └── styles.xml

Así que pueden ver, que bajo androidtest hay algún tipo de proyecto separado con su propio manifiesto que registra actividad y cosas así :-) Compartiría más archivos, pero es solo un proyecto, no más y siempre se puede buscar el enlace .

Lo único que me gustaría advertirte es que deberías estar preparado para que Android Studio te muestre que tu proyecto contiene errores, incluso si eso no es cierto :-) ¡Buena suerte!

Me gustaría agregar archivos xml de diseño en mi carpeta androidTest para usarlos solo para probar.

androidTest carpeta res/layout a androidTest e intenté agregarle un archivo de diseño. Pero da error URI is not registered para xmlns:android="http://schemas.android.com/apk/res/android"

De alguna manera, el proyecto no lo reconoce como un archivo de diseño válido.


Es complicado agregar recursos xml a androidTest .

Las pruebas de Instrumentación de Android crean otra APK para ejecutar las pruebas en su aplicación original. Aunque puede acceder a su Context y objetos desde su aplicación principal, no puede modificar el archivo APK generado de su aplicación.

Eso significa que no puede poner xml de diseño adicional a su aplicación original a partir de las pruebas que se encuentran en la carpeta androidTest .

Solución:

Alternativamente,

  • puedes crear un buildType llamado espresso .
  • Luego, crea una carpeta de espresso donde puedes poner cualquier recurso de Java o Android que quieras agregar.
    • Incluso puede modificar su AndroidManifest allí.
  • Luego, use testBuildType ''espresso''

Tu build.gradle debería verse así:

android { testBuildType ''espresso'' buildTypes { espresso.initWith(buildTypes.release) } } dependencies { espressoCompile ''somedependency'' // you can even have special dependencies }

Cuando ejecute sus pruebas de expreso alrededor de ese sabor, tendrá acceso a los archivos xml de diseño adicionales que haya agregado.

Debería verse así: