ПРИМЕЧАНИЕ: Это решение основано на использовании Eclipse Indigo (3.8.2) и может быть несколько иначе реализовано для другой IDE, хотя основные принципы будут такими же.
У меня были похожие проблемы, и я обнаружил, что всегда работает следующее:
( ПРИМЕЧАНИЕ. Эти инструкции предназначены для создания новой группы проектов с нуля. Если вы уже создали части группы проектов, возможно, вам придется изменить свои проекты, чтобы они соединялись в одном и том же способ. )
- Создайте новый проект библиотеки Android, установив флажок «Есть библиотека» во время создания. (например, проект Android под названием «RemingtonAndroidTools»).
- Создайте проект библиотеки Android и убедитесь, что он создал файл jar в папке bin. (например, файл jar с именем «RemingtonAndroidTools.jar».)
- Создайте пустой Android-проект для тестирования приложения Android, которое будет использоваться в качестве приложения Android Test. (Например, проект Android с именем «RemingtonAndroidToolsTestApp»). Вам не нужно будет изменять исходный код или ресурсы проекта Android Test App, если у вас нет чего-то, что необходимо добавить для тестирования. Многие вещи можно протестировать без каких-либо изменений в Android Test App Project. Проект Android Test App - это мост между вашим проектом библиотеки Android и проектом Android Junit, который делает возможным тестирование проекта библиотеки Android через Android Junit.
- Перейдите на вкладку «Библиотека» пути сборки Java для проекта Android Test App (в данном примере «RemingtonAndroidToolsTestApp»).
- Добавьте файл jar (в данном примере «RemingtonAndroidTools.jar») проекта библиотеки Android (в этом примере «RemingtonAndroidTools») с помощью кнопки «Добавить Jars ...».
- Создайте новый проект Android Test (например, «RemingtonAndroidToolsTester»), который будет выполнять функцию тестера библиотеки Android, и выберите проект Android Test App (в данном примере «RemingtonAndroidToolsTestApp»).
- Перейдите на вкладку «Библиотека» пути сборки Java для проекта Android Library Tester (в данном примере «RemingtonAndroidToolsTester»).
- Добавьте файл jar (в данном примере «RemingtonAndroidTools.jar») проекта библиотеки Android (в этом примере «RemingtonAndroidTools») с помощью кнопки «Добавить банки ...».
- Найдите последнюю папку вашего пакета Android в проекте Android Library Tester (например, "danny.remington.remington_android_tools_test_app.test") и добавьте тестовый класс (например, "MainActivityTest"), который наследуется от ActivityInstrumentationTestCase2.
- Измените класс теста (в данном примере «TestActivityTest»), чтобы использовать действие (например, «TestActivity») приложения Android Test (в данном примере «RemingtonAndroidToolsTestApp») в качестве параметра для ActivityInstrumentationTestCase2.
- Отредактируйте тестовый класс (в данном примере «TestActivityTest») и создайте конструктор по умолчанию, который выполняет вызов super (Class) и передает класс Android Test App (например, «TestActivity.class»).
У вас должно получиться три проекта (Android Library, Android Test App, Android Library Tester), которые выглядят примерно так:
Вы должны получить класс для тестирования вашей библиотеки Android, который выглядит примерно так:
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);
}
}
Затем вы можете добавить любой тест, который вы хотите. Вам не нужно будет ссылаться на Android Test App (в данном примере «RemingtonAndroidToolsTestApp»), чтобы запускать свои тесты, если только им не требуется доступ к определенному компоненту Android (например, к папке Assets). Если вам нужен доступ к каким-либо конкретным компонентам Android, вы можете сделать это, изменив тестовое приложение Android (в данном примере «RemingtonAndroidToolsTestApp»), а затем сослаться на него с помощью инструментария, предоставляемого стандартным API Junit Android. (Подробнее об этом можно прочитать здесь: http://developer.android.com/tools/testing/testing_android.html)