Хост-тесты JAR должны быть реализованы, чтобы обеспечить полное покрытие кода вашего программного обеспечения. Следуйте инструкциям по сборке локальных модульных тестов . Напишите небольшие модульные тесты для проверки конкретной функции и ничего более.
Пример
В следующем файле Blueprint представлен простой пример теста хоста Hello World JAR, который можно скопировать и адаптировать к вашим потребностям: platform_testing/tests/example/jarhosttest/Android.bp
Это соответствует фактическому тестовому коду, найденному по адресу: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java.
Для удобства здесь приведен снимок файла Blueprint:
java_test_host {
    name: "HelloWorldHostTest",
    test_suites: ["general-tests"],
    srcs: ["test/**/*.java"],
    static_libs: [
        "junit",
        "mockito",
    ],
}
 Объявление java_test_host в начале указывает, что это хост-тест JAR. См. пример его использования в: frameworks/base/tools/powermodel/Android.bp.
Настройки
Ниже приведены пояснения к следующим настройкам:
- Установка - nameтребуется, когда указан тип модуля- java_test_host(в начале блока). Этот параметр дает имя вашему модулю, и полученный файл JAR имеет то же имя и суффикс- .jar. В приведенном ниже примере итоговый тестовый JAR называется- HelloWorldHostTest.jar. Кроме того, этот параметр также определяет целевое имя make для вашего модуля, так что вы можете использовать- make [options] <HelloWorldHostTest>для сборки вашего тестового модуля и всех его зависимостей.- name: "HelloWorldHostTest",
- Параметр - test_suitesделает тест легко обнаруживаемым тестовой программой Торговой федерации. Сюда можно добавить другие наборы тестов, например CTS, чтобы можно было совместно использовать тест хост-теста JAR.- test_suites: ["general-tests"],
- Параметр - static_libsуказывает системе сборки включить содержимое именованных модулей в результирующий APK текущего модуля. Это означает, что ожидается, что каждый именованный модуль создаст файл- .jar. Содержимое модуля используется для разрешения ссылок на пути к классам во время компиляции и включается в результирующий APK.- static_libs: [ "junit", ],
