NOTA: Esta solución se basa en el uso de Eclipse Indigo (3.8.2) y es posible que deba implementarse de manera ligeramente diferente para otro IDE, aunque los principios básicos serán los mismos.
Tuve problemas similares y descubrí que lo siguiente siempre funciona:
( NOTA: Estas instrucciones son para crear un nuevo grupo de proyectos desde cero. Si ya ha creado partes del grupo de proyectos, es posible que deba modificar sus proyectos para que se conecten de la misma manera ) .
- Cree un nuevo proyecto de biblioteca de Android marcando la casilla de verificación "Es biblioteca" durante la creación. (por ejemplo, un proyecto de Android llamado "RemingtonAndroidTools").
- Cree el proyecto de la biblioteca de Android y verifique que haya creado un archivo jar en la carpeta bin. (por ejemplo, un archivo jar llamado "RemingtonAndroidTools.jar").
- Cree un proyecto de Android vacío para probar la aplicación de Android que servirá como una aplicación de prueba de Android. (Por ejemplo, un proyecto de Android llamado "RemingtonAndroidToolsTestApp"). No necesitará modificar el código fuente o los recursos del proyecto de la aplicación de prueba de Android a menos que tenga algo que deba agregarse para la prueba. Se pueden probar muchas cosas sin modificaciones en el proyecto de aplicación de prueba de Android. El proyecto de la aplicación de prueba de Android es un puente entre su proyecto de biblioteca de Android y el proyecto de Android Junit que hace posible la prueba del proyecto de biblioteca de Android a través de Android Junit.
- Vaya a la pestaña Biblioteca de Java Build Path para el proyecto de la aplicación de prueba de Android ("RemingtonAndroidToolsTestApp" en este ejemplo).
- Agregue el archivo jar ("RemingtonAndroidTools.jar" en este ejemplo) del proyecto de biblioteca de Android ("RemingtonAndroidTools" en este ejemplo) a través del botón "Agregar jarras ...".
- Cree un nuevo proyecto de prueba de Android (por ejemplo, "RemingtonAndroidToolsTester") que servirá como un probador de bibliotecas de Android y seleccione el proyecto de la aplicación de prueba de Android ("RemingtonAndroidToolsTestApp" en este ejemplo) como destino.
- Vaya a la pestaña Biblioteca de Java Build Path para el proyecto de probador de bibliotecas de Android ("RemingtonAndroidToolsTester" en este ejemplo).
- Agregue el archivo jar ("RemingtonAndroidTools.jar" en este ejemplo) del proyecto de biblioteca de Android ("RemingtonAndroidTools" en este ejemplo) a través del botón "Agregar jarras ...".
- Busque la última carpeta de su paquete de Android en el proyecto Android Library Tester ("danny.remington.remington_android_tools_test_app.test", por ejemplo) y agregue una clase de prueba ("MainActivityTest" por ejemplo) que herede de ActivityInstrumentationTestCase2.
- Edite la clase de prueba ("TestActivityTest" en este ejemplo) para usar la actividad (por ejemplo, "TestActivity") de la aplicación de prueba de Android ("RemingtonAndroidToolsTestApp" en este ejemplo) como parámetro para ActivityInstrumentationTestCase2.
- Edite la clase de prueba ("TestActivityTest" en este ejemplo) y cree un constructor predeterminado que haga una llamada a super (Class) y pase la clase de la aplicación de prueba de Android ("TestActivity.class" por ejemplo).
Debería terminar con tres proyectos (biblioteca de Android, aplicación de prueba de Android, probador de biblioteca de Android) que se parecen a esto:
Debería terminar con una clase para probar su biblioteca de Android que se parece a esto:
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 agregar cualquier prueba que desee. No necesitará hacer referencia a la aplicación de prueba de Android ("RemingtonAndroidToolsTestApp" en este ejemplo) más para ejecutar sus pruebas a menos que requieran acceso a un componente específico de Android (como la carpeta de Activos, por ejemplo). Si necesita acceder a algún componente específico de Android, puede hacerlo modificando la aplicación de prueba de Android ("RemingtonAndroidToolsTestApp" en este ejemplo) y luego haciendo referencia a ella a través de la instrumentación proporcionada por la API estándar de Android Junit. (Puede leer más sobre eso aquí: http://developer.android.com/tools/testing/testing_android.html )