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
nameist 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_suitessorgt 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_libsweist 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", ],