Для полного покрытия кода вашего программного обеспечения необходимо реализовать хост-тесты архива Java (JAR). Следуйте инструкциям по созданию локальных модульных тестов . Пишите небольшие модульные тесты для проверки конкретной функции и ничего более.
Пример
Следующий файл Blueprint содержит простой пример теста хоста JAR Hello World, который можно скопировать и адаптировать под свои нужды: 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 [options] <HelloWorldHostTest>
для сборки тестового модуля и всех его зависимостей.name: "HelloWorldHostTest",
Параметр
test_suites
позволяет легко обнаружить тест в тестовой среде Trade Federation. Здесь можно добавить другие тестовые наборы, например CTS, чтобы обеспечить общий доступ к тесту хоста JAR.test_suites: ["general-tests"],
Параметр
static_libs
указывает системе сборки включить содержимое указанных модулей в результирующий APK-файл текущего модуля. Это означает, что каждый указанный модуль должен создать файл.jar
. Содержимое модуля используется для разрешения ссылок classpath во время компиляции и включается в результирующий APK-файл.static_libs: [ "junit", ],