Хост-тесты архива Java (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", ],