Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Testy hosta JAR
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Aby zapewnić pełne pokrycie kodu Twojego oprogramowania, należy wdrożyć testy hosta archiwum Java (JAR). Wykonaj instrukcje, aby utworzyć testy jednostek lokalnych.
pisać małe testy jednostkowe, które weryfikują tylko jedną funkcję,
Przykład
Ten plik Blueprint zawiera prosty przykład testu hosta JAR Hello World, który możesz skopiować i dostosować do swoich potrzeb:
platform_testing/tests/example/jarhosttest/Android.bp
Odpowiada on rzeczywistemu kodom testów, który znajduje się w folderze platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java.
Dla wygody użytkowników zamieszczamy tutaj migawkę pliku projektu:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
Deklaracja java_test_host
na początku wskazuje, że jest to test hosta JAR. Przykład użycia:
frameworks/base/tools/powermodel/Android.bp
Ustawienia
Poniżej znajdziesz wyjaśnienia tych ustawień:
Ustawienie name
jest wymagane, gdy określony jest typ modułu java_test_host
(na początku bloku). To ustawienie nadaje nazwę modułowi, a wygenerowany plik JAR ma tę samą nazwę z dodatkiem sufiksu .jar
. W przykładzie poniżej plik JAR testu ma nazwę HelloWorldHostTest.jar
. To ustawienie definiuje też nazwę docelową make dla modułu, dzięki czemu możesz użyć make [options] <HelloWorldHostTest>
do skompilowania testowego modułu i wszystkich jego zależności.
name: "HelloWorldHostTest",
Ustawienie test_suites
sprawia, że test jest łatwy do znalezienia przez mechanizm testowy Trade Federation. Można tu dodać inne zestawy testów, np. CTS, aby udostępnić test hosta JAR.
test_suites: ["general-tests"],
Ustawienie static_libs
nakazuje systemowi kompilacji uwzględnienie zawartości wymienionych modułów w wygenerowanym pliku APK bieżącego modułu.
Oznacza to, że każdy moduł o nazwie powinien wygenerować plik .jar
.
Treść modułu jest używana do rozwiązywania odwołań do ścieżki klasy podczas kompilacji i jest włączana do tworzonego pliku APK.
static_libs: [
"junit",
],
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 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 ],"]]