ПРИМІТКА. Це рішення засноване на використанні Eclipse Indigo (3.8.2) і може бути реалізовано дещо інакше для іншого IDE, хоча основні принципи будуть однаковими.
У мене були подібні проблеми, і я виявив, що робити наступне:
( ПРИМІТКА. Ці інструкції призначені для створення нової групи проектів з нуля. Якщо ви вже створили частини групи проектів, можливо, вам доведеться змінити свої проекти, щоб вони з'єднувались однаково. )
- Створіть новий проект бібліотеки Android, встановивши прапорець "Є бібліотека" під час створення. (наприклад, проект Android під назвою "RemingtonAndroidTools").
- Створіть проект бібліотеки Android і переконайтеся, що він створив файл jar в папці bin. (наприклад, файл jar з назвою "RemingtonAndroidTools.jar".)
- Створіть порожній проект Android для тестування програми Android, яка буде виконувати функції тестового додатка Android. (Наприклад, проект Android під назвою "RemingtonAndroidToolsTestApp"). Вам не потрібно буде змінювати вихідний код або ресурси проекту Android Test App, якщо у вас є щось, що потрібно додати для тестування. Багато речей можна перевірити без будь-яких модифікацій проекту Android Test App. Проект Android Test App - це міст між вашим проектом бібліотеки Android та проектом Android Junit, який робить можливим тестування проекту бібліотеки Android через Android Junit.
- Перейдіть на вкладку Бібліотека Java Build Path для проекту Android Test App ("RemingtonAndroidToolsTestApp" у цьому прикладі).
- Додайте файл jar ("RemingtonAndroidTools.jar" у цьому прикладі) проекту Android Library ("RemingtonAndroidTools" у цьому прикладі) за допомогою кнопки "Add Jars ...".
- Створіть новий тестовий проект Android (наприклад, "RemingtonAndroidToolsTester"), який буде виконувати функцію тестера бібліотеки Android, і виберіть проект цілі Android (у цьому прикладі "RemingtonAndroidToolsTestApp").
- Перейдіть на вкладку Бібліотека Java Build Path для проекту Тестер бібліотеки Android ("RemingtonAndroidToolsTester" у цьому прикладі).
- Додайте файл jar ("RemingtonAndroidTools.jar" у цьому прикладі) проекту Android Library ("RemingtonAndroidTools" у цьому прикладі) за допомогою кнопки "Add Jars ...".
- Знайдіть останню папку вашого пакета Android у проекті Тестер бібліотеки Android ("danny.remington.remington_android_tools_test_app.test" наприклад) та додайте тестовий клас (наприклад "MainActivityTest"), який успадковується від ActivityInstrumentationTestCase2.
- Відредагуйте тестовий клас ("TestActivityTest" у цьому прикладі), щоб використовувати активність (наприклад, "TestActivity") програми Android Test ("RemingtonAndroidToolsTestApp" у цьому прикладі) як параметр для ActivityInstrumentationTestCase2.
- Відредагуйте тестовий клас ("TestActivityTest" у цьому прикладі) та створіть конструктор за замовчуванням, який здійснює виклик до super (Class) та переходить у клас тестового додатка Android (наприклад "TestActivity.class").
Ви повинні закінчити три проекти (бібліотека Android, тестова програма для Android, тестер бібліотеки Android), схожі на це:
Ви повинні закінчити клас тестування бібліотеки 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 ("RemingtonAndroidToolsTestApp" у цьому прикладі) для подальшого запуску тестів, якщо вони не потребують доступу до конкретного компонента для Android (наприклад, папки Assets, наприклад). Якщо вам потрібно отримати доступ до будь-яких компонентів для Android, ви можете зробити це, змінивши тестовий додаток Android ("RemingtonAndroidToolsTestApp" у цьому прикладі), а потім посилаючись на нього за допомогою інструментарію, що надається стандартним API Junit API. (Ви можете прочитати більше про це тут: http://developer.android.com/tools/testing/testing_android.html )