Как проверить проект библиотеки Android
Вопрос
Я пишу проект Android Library Project на основе класса Bitmap Android (вызовите его Androindlib), который содержит только утилиты (без активности). Я пытался проверить его с помощью Android Junit, но он продолжает жаловаться, что не может найти AnoldLib.apk
Каков правильный путь к установлению тестируемого проекта библиотеки Android?
Решение
Цитирование Документация:
«Существует два рекомендуемых способа настройки тестирования на коде и ресурсы в библиотечном проекте:
Вы можете настроить тестовый проект, который включает в себя проект приложений, который зависит от проекта библиотек. Затем вы можете добавить тесты на проект для определения библиотеки функций.
Вы можете настроить стандартный проект приложений, который зависит от библиотеки и поместите приборы в этот проект. Это позволяет создать автономный проект, который содержит как тесты / приборы, так и код для тестирования ».
Другие советы
В вашем тестовом проекте просто измените имя пакета, чтобы оно так же, как пакет вашей библиотеки. Например, у вас есть библиотека, чья пакет "com.example.lib"
. Отказ Создайте тестовый проект, нацеленный на вашу библиотеку. В файле манифеста вы увидите package="com.example.lib.test"
, а также targetPackage="com.example.lib"
. Отказ Просто измените пакет из "com.example.lib.test" на "com.example.lib" (targetPackage
оставить как есть).
Кроме того, убедитесь, что библиотека ссылается на ваш тестовый проект НЕТ в пути сборки Java, но как обычная библиотека Android: в Eclipse она должна быть показана как библиотека в Project->Properties->Android
вкладка, но нет в Project->Properties->Java Build Path
вкладка.
Затем запустите вас тесты.
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/ Помогает описать процесс, необходимый для реализации второго предложения в ответе СООБАНУРЕННОСТИ
За то документация:
Тестирование библиотечного модуля такой же, как тестирование приложения. Основное отличие состоит в том, что библиотека и ее зависимости автоматически включаются в зависимости от тестируемого APK. Это означает, что тестовый APK включает в себя не только свой собственный код, но и AAR библиотеки и все его зависимости. Поскольку не существует отдельного «приложения приложения», задача AndroidTest устанавливает (и удалить) только тестовый APK. При объединении нескольких файлов манифеста Градл следует приоритетному приоритету по умолчанию и объединяет явюю библиотеки в основной манифест Test APK.
ПРИМЕЧАНИЕ: Это решение основано на использовании Eclipse Indigo (3.8.2) и может быть немного реализовано немного по-разному для другого IDE, хотя основные принципы будут одинаковыми.
У меня были подобные проблемы, и я обнаружил, что все всегда работает:
(Примечание. Эти инструкции предназначены для создания новой группы проектов с нуля. Если вы уже построили части группы проектов, вам, возможно, придется изменить свои проекты, чтобы они соединялись так же.)
- Создайте новый проект библиотеки Android, проверяя флажок «Библиотека» во время создания. (Например, проект Android с именем «remingtonandandroidtools»).
- Создайте проект библиотеки Android и убедитесь, что он создал файл JAR в папке Bin. (Например, файл jar с именем "remingtonandandroidtools.jar".)
- Создайте пустой проект Android для тестирования приложения для Android, который будет служить приложением Test Android. (Например, проект Android с именем «remingtonandandroidToolstestapp»). Вам не нужно будет изменять исходный код или ресурсы проекта Android Test App, если у вас есть что-то, что должно быть добавлено для тестирования. Многие вещи могут быть проверены без каких-либо модификаций проекта Android Test App. Проект Android Test App Project - это мост между проектом библиотеки Android и проектом Android Junit, который делает тестирование проекта библиотеки Android через Android Junit.
- Перейдите на вкладку «Библиотека» Path Android Test Pake Path для проекта Android Test App («RemingtonandandroidToolsteStApp» в этом примере).
- Добавьте файл JAR («remingtonandandroidtools.jar» в этом примере) в этом примере андроидной библиотеки проекта («remingtonandrandroidtools» в этом примере) через кнопку «Добавить банки ...».
- Создайте новый тестовый проект Android (например, «remingtonandroidToolstester»), который будет служить тестером библиотеки Android и выбрать проект приложений Android Test App («remingtonandrandroidToolstestApp» в этом примере) в качестве цели.
- Перейдите на вкладку «Библиотека» PATCE Java Build для проекта тестера библиотеки Android («RemingtonandrandroidToolstester» в этом примере).
- Добавьте файл JAR («remingtonandandroidtools.jar» в этом примере) в этом примере андроидной библиотеки проекта («remingtonandrandroidtools» в этом примере) через кнопку «Добавить банки ...».
- Найдите последнюю папку вашего пакета Android в проекте тестера библиотеки Android (например, «danny.remington.remington_Android_tools_test_aptton_test») и добавьте тестовый класс (например, «MainactivityTest»), наследование от ActivityInstrumentationTestCase2.
- Редактируйте тестовый класс («TestactivityTest» в этом примере) в этом примере) использовать деятельность (например, «Testactivity») Android-тестового приложения («remingtonandrandroidToolstestApp» в этом примере) в качестве параметра для действийInstrumentationTestCase2.
- Редактируйте тестовый класс («TestactivityTest» в этом примере) и создайте конструктор по умолчанию, который позволяет вызововать Super (Class) и передачу в классе Android-тестового приложения (например, «Testactivity.Class»).
Вы должны в конечном итоге с тремя проектами (Android Library, Android Test Test Test Test Tesk 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 («remingtonandroidRehtoolstestapp» в этом примере) Далее, чтобы выполнить тесты, если они не требуют доступа к конкретному компоненту Android (например, папка активов). Если вам нужно получить доступ к любым конкретным компонентам Android, вы можете сделать это, модифицируя приложение Test Test Android («RemingtonandridroidToolstestApp» в этом примере), а затем ссылается на него через приборочку API, предоставленные стандартными Android Junit API. (Вы можете прочитать больше об этом здесь: http://developer.android.com/tools/testing/testing_android.html.)
Если ваш Ulitiy Classes не зависит от какого-либо конкретного кода Android, вы можете просто использовать стандартные тесты юнитов. Не нужно использовать версии Android.