Вопрос

Я пишу проект 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, хотя основные принципы будут одинаковыми.

У меня были подобные проблемы, и я обнаружил, что все всегда работает:

(Примечание. Эти инструкции предназначены для создания новой группы проектов с нуля. Если вы уже построили части группы проектов, вам, возможно, придется изменить свои проекты, чтобы они соединялись так же.)

  1. Создайте новый проект библиотеки Android, проверяя флажок «Библиотека» во время создания. (Например, проект Android с именем «remingtonandandroidtools»).
  2. Создайте проект библиотеки Android и убедитесь, что он создал файл JAR в папке Bin. (Например, файл jar с именем "remingtonandandroidtools.jar".)
  3. Создайте пустой проект Android для тестирования приложения для Android, который будет служить приложением Test Android. (Например, проект Android с именем «remingtonandandroidToolstestapp»). Вам не нужно будет изменять исходный код или ресурсы проекта Android Test App, если у вас есть что-то, что должно быть добавлено для тестирования. Многие вещи могут быть проверены без каких-либо модификаций проекта Android Test App. Проект Android Test App Project - это мост между проектом библиотеки Android и проектом Android Junit, который делает тестирование проекта библиотеки Android через Android Junit.
  4. Перейдите на вкладку «Библиотека» Path Android Test Pake Path для проекта Android Test App («RemingtonandandroidToolsteStApp» в этом примере).
  5. Добавьте файл JAR («remingtonandandroidtools.jar» в этом примере) в этом примере андроидной библиотеки проекта («remingtonandrandroidtools» в этом примере) через кнопку «Добавить банки ...».
  6. Создайте новый тестовый проект Android (например, «remingtonandroidToolstester»), который будет служить тестером библиотеки Android и выбрать проект приложений Android Test App («remingtonandrandroidToolstestApp» в этом примере) в качестве цели.
  7. Перейдите на вкладку «Библиотека» PATCE Java Build для проекта тестера библиотеки Android («RemingtonandrandroidToolstester» в этом примере).
  8. Добавьте файл JAR («remingtonandandroidtools.jar» в этом примере) в этом примере андроидной библиотеки проекта («remingtonandrandroidtools» в этом примере) через кнопку «Добавить банки ...».
  9. Найдите последнюю папку вашего пакета Android в проекте тестера библиотеки Android (например, «danny.remington.remington_Android_tools_test_aptton_test») и добавьте тестовый класс (например, «MainactivityTest»), наследование от ActivityInstrumentationTestCase2.
  10. Редактируйте тестовый класс («TestactivityTest» в этом примере) в этом примере) использовать деятельность (например, «Testactivity») Android-тестового приложения («remingtonandrandroidToolstestApp» в этом примере) в качестве параметра для действийInstrumentationTestCase2.
  11. Редактируйте тестовый класс («TestactivityTest» в этом примере) и создайте конструктор по умолчанию, который позволяет вызововать Super (Class) и передачу в классе Android-тестового приложения (например, «Testactivity.Class»).

Вы должны в конечном итоге с тремя проектами (Android Library, Android Test Test Test Test Tesk Tester), который выглядит похоже на это:

enter image description here

enter image description here

enter image description here

Вы должны завершены с классом для тестирования вашей библиотеки 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top