JAR-Hosttests sollten implementiert werden, um eine vollständige Codeabdeckung Ihrer Software zu erreichen. Folgen Sie der Anleitung zum Erstellen lokaler Unit-Tests. Schreiben Sie kleine Unittests, um eine bestimmte Funktion zu validieren.
Beispiel
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 finden Sie einen 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 es sich um einen JAR-Host-Test handelt. 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
(am Anfang des Blocks) angegeben wird. Mit dieser Einstellung wird Ihrem Modul ein Name zugewiesen. Die resultierende JAR-Datei hat denselben Namen und das Suffix.jar
. Im Beispiel unten hat die resultierende Test-JAR den NamenHelloWorldHostTest.jar
. Außerdem wird mit dieser Einstellung auch ein Make-Zielname für Ihr Modul definiert, sodass Siemake [options] <HelloWorldHostTest>
verwenden können, um Ihr Testmodul und alle seine Abhängigkeiten zu erstellen.name: "HelloWorldHostTest",
Die Einstellung
test_suites
sorgt dafür, dass der Test vom Trade Federation-Test-Harness leicht gefunden werden kann. Hier können weitere Test-Suites wie CTS hinzugefügt werden, damit der JAR-Hosttest freigegeben werden kann.test_suites: ["general-tests"],
Die Einstellung
static_libs
weist das Build-System an, die Inhalte der genannten Module in die resultierende APK des aktuellen Moduls aufzunehmen. Das bedeutet, dass jedes benannte Modul eine.jar
-Datei erzeugen soll. Der Inhalt des Moduls wird verwendet, um Klassenpfadverweise zur Kompilierungszeit aufzulösen und in die resultierende APK-Datei einzubinden.static_libs: [ "junit", ],