Pregunta

Estoy escribiendo un proyecto de biblioteca de Android basado en la clase de mapa de bits de Android (llámela AndroindLib) que contiene solo una clase de utilidad (sin actividad).Intenté probarlo usando Android JUnit, pero sigue quejándose de que no puede encontrar AnroidLib.apk

¿Cuál es la forma correcta de realizar una prueba unitaria del proyecto de biblioteca de Android?

¿Fue útil?

Solución

la documentación :

"Hay dos formas recomendadas de la creación de pruebas de código y recursos en un proyecto de biblioteca:

  • Puede configurar un proyecto de prueba que los instrumentos de un proyecto de aplicación que depende del proyecto de la biblioteca. A continuación, puede añadir pruebas para el proyecto de biblioteca de funciones específicas.

  • Se puede configurar un proyecto de aplicación estándar que depende de la biblioteca y poner la instrumentación en ese proyecto. Esto le permite crear un proyecto independiente que contiene tanto las pruebas / instrumentaciones y el código de prueba ".

Otros consejos

En el proyecto de prueba basta con cambiar el nombre del paquete para que sea el mismo que el paquete de su biblioteca. Por ejemplo, usted tiene una biblioteca cuyo paquete "com.example.lib". Crear un proyecto de prueba de la orientación de su biblioteca. En el archivo de manifiesto verá package="com.example.lib.test" y targetPackage="com.example.lib". Sólo cambia el paquete de "com.example.lib.test" a "com.example.lib" (permiso targetPackage como es).

Además, asegúrese de que la biblioteca se hace referencia a su proyecto de prueba no en la ruta de compilación de Java, pero como de costumbre biblioteca de Android: en Eclipse se debe demostrar que la biblioteca en la pestaña Project->Properties->Android, pero < strong> no en la pestaña Project->Properties->Java Build Path.

A continuación, ejecute usted pruebas.

http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/ ayuda a describir el proceso necesario para implementar la segunda sugerencia en la respuesta de CommonsWare

documentación :

La prueba de un módulo de la biblioteca es el mismo que probar una aplicación. La diferencia principal es que la biblioteca y sus dependencias se incluyen automáticamente como dependencias de la APK de prueba. Esto significa que el APK de prueba incluye no sólo su propio código, sino también de la biblioteca AAR y todas sus dependencias. Debido a que no hay una "aplicación bajo prueba," separado las instalaciones androidTest tarea (y desinstala) sólo el APK de prueba. Al combinar múltiples archivos de manifiesto, Gradle sigue el orden de prioridad por defecto y se funde manifiesta en la prueba principal de manifiesto APK de la biblioteca.

NOTA:. Esta solución se basa en el uso de Eclipse Indigo (3.8.2) y podría tener que ser implementado de forma ligeramente diferente para otro IDE aunque los principios básicos serán los mismos

he tenido problemas similares y encontré que hacer lo siguiente funciona siempre:

( Nota: Estas instrucciones son para la construcción de un nuevo grupo de proyecto desde cero Si has partes del grupo de proyecto ya construido, entonces es posible que tenga que modificar sus proyectos para que se conecten en la misma. camino. )

  1. Crear un nuevo proyecto de biblioteca Android marcando la casilla de verificación "es la biblioteca" durante la creación. (Por ejemplo, un proyecto llamado "Android RemingtonAndroidTools").
  2. Construir el proyecto de biblioteca de Android y verifique que se ha creado un archivo JAR en la carpeta bin. (Por ejemplo, un archivo jar llamado "RemingtonAndroidTools.jar".)
  3. Crear un proyecto de Android vacío para probar la aplicación para Android que servirá como un Test App Android. (Por ejemplo, un proyecto androide llamado "RemingtonAndroidToolsTestApp"). Usted no tendrá que modificar el código fuente o los recursos del proyecto Android Test App menos que tenga algo que debe ser añadido para la prueba. Hay muchas cosas que se pueden probar sin ninguna modificación en el Android Test App Proyecto. El proyecto Android Test App es un puente entre su proyecto de biblioteca de Android y el proyecto Android Junit que hace que las pruebas del proyecto Biblioteca Android a través de Android Junit posible.
  4. Vaya a la pestaña Biblioteca de Java Build Path para el proyecto Android Test App ( "RemingtonAndroidToolsTestApp" en este ejemplo).
  5. Añadir el archivo JAR ( "RemingtonAndroidTools.jar" en este ejemplo) del Proyecto Biblioteca androide ( "RemingtonAndroidTools" en este ejemplo) a través de la opción "Agregar tarros ..." botón.
  6. Crear un nuevo proyecto de prueba de Android (por ejemplo, "RemingtonAndroidToolsTester") que servirá como un probador Biblioteca Android y seleccione el proyecto Android Test App ( "RemingtonAndroidToolsTestApp" en este ejemplo) como objetivo.
  7. Vaya a la pestaña Biblioteca de Java Build Path para el proyecto Android Biblioteca Tester ( "RemingtonAndroidToolsTester" en este ejemplo).
  8. Añadir el archivo JAR ( "RemingtonAndroidTools.jar" en este ejemplo) del Proyecto Biblioteca androide ( "RemingtonAndroidTools" en este ejemplo) a través de la opción "Agregar tarros ..." botón.
  9. Para la última carpeta del paquete de Android en el proyecto Android Biblioteca Tester ( "danny.remington.remington_android_tools_test_app.test", por ejemplo) y añadir una clase de prueba ( "MainActivityTest", por ejemplo) que hereda de ActivityInstrumentationTestCase2.
  10. Editar la clase de prueba ( "TestActivityTest" en este ejemplo) para utilizar la actividad (por ejemplo, "TestActivity") del Test App Android ( "RemingtonAndroidToolsTestApp" en este ejemplo) como el parámetro para ActivityInstrumentationTestCase2.
  11. Modificar la clase de prueba ( "TestActivityTest" en este ejemplo) y crear un constructor por defecto que hace una llamada a super (Clase) y que pasa en la clase del Test App Android ( "TestActivity.class", por ejemplo).

Se debe terminar con tres proyectos (Biblioteca de Android, Android aplicación de prueba, Android Biblioteca Tester) que se parecen a esto:

introducir descripción de la imagen aquí

introducir descripción de la imagen aquí

introducir descripción de la imagen aquí

Se debe terminar con una clase para probar su Biblioteca Android que tiene una apariencia similar a la siguiente:

package danny.remington.remington_android_tools_test_app.test;

import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;

/**
 * 
 */
public class TestActivityTest extends
      ActivityInstrumentationTestCase2<TestActivity> {

   public TestActivityTest() {
      super(TestActivity.class);
   }

}

A continuación, puede añadir cualquier prueba que desee. Usted no tendrá que hacer referencia al Test App Android ( "RemingtonAndroidToolsTestApp" en este ejemplo) más a ejecutar las pruebas a menos que requieran acceso a un componente específico de Android (como la carpeta de activos, por ejemplo). Si necesita acceder a cualquier específica Androidcomponentes que pueden hacerlo modificando el Test App Android ( "RemingtonAndroidToolsTestApp" en este ejemplo) y luego referencia a ella a través de la instrumentación que proporciona la API estándar de Android Junit. (Puede leer más sobre esto aquí: http://developer.android.com/tools /testing/testing_android.html )

Si sus clases de utilidad no dependen de ningún código específico androide, sólo puede utilizar las pruebas unitarias JUnit estándar. No es necesario utilizar las versiones de Android.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top