unitest test studio run hacer dependency como android junit android-studio

hacer - run test in android studio



Android Studio importa las pruebas de unidades existentes "No se puede encontrar la informaciĆ³n de instrumentaciĆ³n" (14)

Como ninguna de estas respuestas me ayudó, quería compartir mi solución para cualquiera que esté tan desesperado como yo. :)

Debido a las bibliotecas de prueba que estaba usando, necesitaba habilitar el soporte multiDexEnabled true agregando multiDexEnabled true a mi compilación de Gradle. No estoy seguro de tener soporte multidex totalmente implementado desde el principio (la manera correcta de hacerlo ha cambiado desde la última vez que lo implementé) pero, en última instancia, no terminé necesitándolo y al eliminar esa línea de mi compilación se corrigió el error. . Mi equipo en el trabajo ha tenido algunos problemas de prueba relacionados con la habilitación del soporte multidex ... en el estilo típico de Android.

Así que estoy probando nuestro Android Studio y probando un proyecto que funcionó en Eclipse. Tengo todo compilado y la aplicación se ejecutará bien, pero no puedo hacer que las pruebas de mi unidad funcionen. Eventualmente los compilé agregando mi carpeta lib de aplicaciones como una dependencia, pero no creo que mi configuración de ejecución sea correcta porque cada vez que ejecuto mis pruebas obtengo este error

Installing <packagename> DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/<packagename>" pkg: /data/local/tmp/<packagename> Success Running tests Test running started Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner} Empty test suite.

Editar: Para todos los recién llegados, el estado de Android Studio ha cambiado mucho desde que inicialmente publiqué esta pregunta, pero muchas personas útiles han seguido publicando su solución particular para este error. Aconsejo ordenar por activo y revisar primero las respuestas más nuevas.


En mi caso, el problema estaba en el dispositivo también. Otros dispositivos funcionaban bien. La desinstalación simple y la reinstalación lo arreglaron.


En mi caso, en las mismas clases, algunos casos de prueba escogían el corrector de prueba correcto (android.support.test.runner.AndroidJUnitRunner) que se definió en build.gradle, y algunos casos de prueba estaban recogiendo android.test.InstrumentationTestRunner, que no estaba definido al menos en Manifest o build.gradle o edit configuration. Idealmente debería haber sido resuelto por Sync Project con la opción de Gralde, aunque no funcionó.

Por fin, encontré el corrector de pruebas incorrecto definido en un método en .idea/workspace.xml , lo cambié de forma manual y se resolvió el problema.

En general, no se supone que editemos este archivo generado por Android Studio, pero para mí funcionó como última opción.


En mi caso, la solución fue:

  • Ver> Ventanas de herramienta> Variantes de compilación
  • Seleccione una * variante de depuración

En mi caso, las configuraciones Run / Debug fueron incorrectas.

Una solución:

  1. Vaya a Configuraciones de ejecución / depuración

    Ejecutar -> Editar configuraciones ...

  2. Configure una prueba de Android para su clase de prueba

  3. Seleccione su configuración de prueba de Android en el lado izquierdo
    o cree uno nuevo con el ícono más y asígnele el nombre, por ejemplo ClassName Test

  4. Seleccione el módulo que contiene su clase de prueba. En el caso más simple, la clase de prueba está en su módulo de aplicación para seleccionar la aplicación .

  5. Seleccione en la siguiente fila su configuración de prueba. Yo suelo:

    • Clase : para ejecutar todas las pruebas de una clase.
  6. Elija su clase de prueba

  7. Finalmente configure su dispositivo objetivo y seleccione OK.


Para mí, el problema era tener esta dependencia:

debugCompile ''com.android.support.test:rules:0.2''

Después de eliminarlo, mis pruebas se encontraron y se ejecutan nuevamente.

Tenga en cuenta que no recibí el mensaje "No se puede encontrar la instrumentación", sino el mensaje "No se encontraron pruebas".


Resolví este problema cambiando

android.test.InstrumentationTestRunner

dentro

com.android.test.runner.MultiDexTestRunner

en EditConfigurations -> pestaña Specific Instrumentation Runner (opcional).

Resulta que, debido a que mi aplicación usa MultiDex, también necesito cambiar el corredor de prueba a MultiDexTestRunner.

ACTUALIZAR:

Como @dan comentario, InstrumentationTestRunner está en desuso, use AndroidJUnitRunner en AndroidJUnitRunner lugar.


Resultó ser un problema de demora. Se corrigió automáticamente después de esperar un rato leyendo las soluciones de Internet. Recopilé el código y funcionó.


Se ve que no tienes una buena estructura de proyecto.

  1. Abra AndroidManifest.xml y compruebe si tiene

    <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.YourClass" android:label="Tests for com.example.YourClass"/>

Si NO, haga lo siguiente:

  1. Reorganice su estructura de directorios con la siguiente: (esta es la recomendación de la fuente oficial )

MyProject/ AndroidManifest.xml res/ ... (resources for main application) src/ ... (source code for main application) ... tests/ AndroidManifest.xml res/ ... (resources for tests) src/ ... (source code for tests)

  1. Usted ve que necesita tener un módulo interno de pruebas .
    Para crearlo en Idea IDE haga el siguiente Archivo -> Nuevo Módulo -> Módulo de Prueba . Después de crear, puede ver un nuevo AndroidManifest.xml. Y tiene una declaración de instrumentación dentro.

Si tiene un testInstrumentationRunner definido en su build.gradle como este:

android { defaultConfig { testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"

asegúrese de que en la ventana de configuración de ejecución use exactamente el mismo "corredor de instrumentación específico" en su configuración de ejecución de Android Studio / IntelliJ para su prueba.


Tengo el mismo problema que @Iuliia Ashomok y probé todo en Internet.

Todavía sin suerte.

Después de 2 días de investigación, descubrí que el problema es creado por el teléfono móvil. .V.

Originalmente uso Xiaomi Mi4i como dispositivo de prueba (rooteado) y las pruebas no se pudieron ejecutar. Por supuesto, recibí el siguiente error.

Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner}

Sin embargo, cuando uso Sony Xperia Z3 (sin raíz), todo funciona bien.


Una vez obtuve este error. Yo uso las herramientas SDK en modo CLI. Y el error ocurrió cuando lancé ''prueba de hormiga'' en el proyecto de prueba. ¡Más tarde noté que ni siquiera construí e instalé el proyecto de prueba antes! (con ''ant depure install'') Por lo tanto, debería haber intentado comprobar la configuración en ejecución para ver si el proyecto de prueba se construyó efectivamente antes de ejecutar la prueba. Para el otro caso, Android Studio usa Gradle. No lo sé bien, pero trate de verificar la configuración de Gradle para el proyecto o el archivo de configuración de Gradle.


Esto solo funciona en AndroidStudio Version <2.3

En mi caso, se seleccionó el corredor de instrumentación equivocado.

Lo solucioné especificando el corredor de instrumentación en la Configuración de ejecución / depuración de la prueba (ver a continuación). Allí puede seleccionar un corredor de la lista.

Encontrará las Configuraciones de ejecución / depuración: Ejecutar -> Editar configuraciones ...


Explicación y solución

Este error " No se puede encontrar la instrumentación " aparece si el TargetPackage declarado en el manifiesto de la aplicación de prueba es diferente del paquete declarado en el manifiesto de la aplicación que se está probando:

  • Aplicación que se prueba:

    <manifest package="com.example.appbeingtested" … >

  • Aplicación de prueba:

    <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.appbeingtested" … />