Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
JAR-Hosttests
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Hosttests für Java-Archive (JAR) sollten implementiert werden, um eine vollständige Codeabdeckung Ihrer Software zu ermöglichen. Folgen Sie der Anleitung zum Erstellen lokaler Unit-Tests.
Schreiben Sie kleine Unittests, um nur eine bestimmte Funktion zu validieren.
Beispiel
Die folgende Blueprint-Datei enthält ein einfaches Hello World-JAR-Hosttestbeispiel, das Sie kopieren und an Ihre Anforderungen anpassen können:
platform_testing/tests/example/jarhosttest/Android.bp
Dies entspricht dem tatsächlichen Testcode unter:
platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Hier ist ein Snapshot der Blueprint-Datei:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
Die java_test_host
-Deklaration am Anfang gibt an, dass dies ein JAR-Hosttest ist. Ein Beispiel für die Verwendung finden Sie unter:
frameworks/base/tools/powermodel/Android.bp
Einstellungen
Unten finden Sie Erläuterungen zu den folgenden Einstellungen:
Die Einstellung name
ist erforderlich, wenn der Modultyp java_test_host
angegeben wird (am Anfang des Blocks). Mit dieser Einstellung wird Ihrem Modul ein Name zugewiesen. Die resultierende JAR-Datei hat denselben Namen und ein .jar
-Suffix. Im folgenden Beispiel heißt das resultierende Test-JAR HelloWorldHostTest.jar
. Außerdem wird mit dieser Einstellung ein Make-Zielname für Ihr Modul definiert, damit Sie Ihr Testmodul und alle zugehörigen Abhängigkeiten mit make [options] <HelloWorldHostTest>
erstellen können.
name: "HelloWorldHostTest",
Mit der Einstellung test_suites
wird der Test für den Trade Federation-Test-Harness leicht auffindbar. Hier können weitere Test-Suites hinzugefügt werden, z. B. CTS, damit der JAR-Host-Test geteilt werden kann.
test_suites: ["general-tests"],
Die Einstellung static_libs
weist das Build-System an, den Inhalt der genannten Module in das resultierende APK des aktuellen Moduls einzubinden.
Das bedeutet, dass jedes benannte Modul eine .jar
-Datei generieren soll.
Der Inhalt des Moduls wird zur Auflösung von Klassenpfadreferenzen während der Kompilierungszeit verwendet und in das resultierende APK eingefügt.
static_libs: [
"junit",
],
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[null,null,["Zuletzt aktualisiert: 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 ],"]]