Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
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",
],
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# JAR host tests\n\nJava archive (JAR) host tests should be implemented to provide complete code\ncoverage of your software. Follow the instructions to [Build local unit\ntests](https://developer.android.com/training/testing/unit-testing/local-unit-tests).\nWrite small unit tests to validate a specific function and nothing more.\n\nExample\n-------\n\nThe following Blueprint file provides a simple Hello World JAR host test example\nto copy and adapt to your needs:\n[platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/Android.bp)\n\nThis corresponds to the actual test code found at:\n[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java)\n\nA snapshot of the Blueprint file is included here for convenience: \n\n java_test_host {\n name: \"HelloWorldHostTest\",\n\n test_suites: [\"general-tests\"],\n\n srcs: [\"test/**/*.java\"],\n\n static_libs: [\n \"junit\",\n \"mockito\",\n ],\n }\n\nThe `java_test_host` declaration at the beginning indicates that this is a JAR\nhost test. See an example of its use in:\n[frameworks/base/tools/powermodel/Android.bp](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/tools/powermodel/Android.bp)\n\nSettings\n--------\n\nSee below for explanations of the following settings:\n\n- The `name` setting is required when the `java_test_host` module type is\n specified (at the start of the block). This setting gives a name to your\n module, and the resulting JAR has the same name and a `.jar` suffix. In the\n example below,the resulting test JAR is named `HelloWorldHostTest.jar`. In\n addition, this setting also defines a make target name for your module, so\n that you can use `make [options] \u003cHelloWorldHostTest\u003e` to build your test\n module and all its dependencies.\n\n name: \"HelloWorldHostTest\",\n\n- The `test_suites` setting makes the test easily discoverable by the Trade\n Federation test harness. Other test suites can be added here, such as CTS,\n so that the JAR host test test can be shared.\n\n test_suites: [\"general-tests\"],\n\n- The `static_libs` setting instructs the build system to incorporate the\n contents of the named modules into the resulting APK of the current module.\n This means that each named module is expected to produce a `.jar` file.\n The module's content is used for resolving classpath references during\n compile time and incorporated into the resulting APK.\n\n static_libs: [\n \"junit\",\n ],"]]