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.
Verwendungsbeispiele
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 Modultypjava_test_host
angegeben wird (am Anfang des Blocks). Mit dieser Einstellung wird Ihrem Modul ein Name gegeben. Die resultierende JAR-Datei hat denselben Namen und ein.jar
-Suffix. 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 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", ],