Java Archive (JAR)-Hosttests sollten implementiert werden, um eine vollständige Codeabdeckung der Software zu gewährleisten. Folgen Sie der Anleitung zum Erstellen lokaler Unit-Tests. Schreiben Sie kleine Unittests, um nur eine bestimmte Funktion zu validieren.
Verwendungsbeispiele
Die folgende Blueprint-Datei enthält ein einfaches Beispiel für einen Hello World-JAR-Hosttest, 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 Modultypjava_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 Suffix von.jar
. Im folgenden Beispiel heißt das resultierende Test-JARHelloWorldHostTest.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 mitmake [options] <HelloWorldHostTest>
erstellen können.name: "HelloWorldHostTest",
Mit der Einstellung
test_suites
wird der Test für das 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", ],