JAR-тесты хоста

Необходимо реализовать тесты хоста архива 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 для вашего модуля, так что вы можете использовать make [options] <HelloWorldHostTest> для сборки вашего тестового модуля и всех его зависимостей.

    name: "HelloWorldHostTest",
    
  • Настройка test_suites делает тест легко обнаруживаемым тестовой обвязкой Trade Federation. Другие тестовые наборы могут быть добавлены здесь, например CTS, так что тест JAR host test может быть общим.

    test_suites: ["general-tests"],
    
  • Параметр static_libs предписывает системе сборки включить содержимое именованных модулей в результирующий APK текущего модуля. Это означает, что каждый именованный модуль должен создать файл .jar . Содержимое модуля используется для разрешения ссылок classpath во время компиляции и включается в результирующий APK.

    static_libs: [
        "junit",
    ],