Es sollten Java-Archiv-Hosttests (JAR) implementiert werden, um eine vollständige Codeabdeckung Ihrer Software zu gewährleisten. Befolgen Sie die Anweisungen zum Erstellen lokaler Komponententests . Schreiben Sie kleine Unit-Tests, um eine bestimmte Funktion zu validieren und nicht mehr.
Beispiel
Die folgende Blueprint-Datei stellt ein einfaches Hello World-JAR-Host-Testbeispiel zum Kopieren und Anpassen an Ihre Anforderungen bereit: 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
Der Einfachheit halber ist hier ein Schnappschuss der Blueprint-Datei enthalten:
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-Hosttest handelt. Ein Beispiel für die Verwendung finden Sie unter: Frameworks/Base/Tools/Powermodel/Android.bp
Einstellungen
Nachfolgend finden Sie Erläuterungen zu den folgenden Einstellungen:
Die
name
ist erforderlich, wenn der Modultypjava_test_host
angegeben wird (am Anfang des Blocks). Diese Einstellung gibt Ihrem Modul einen Namen und die resultierende JAR-Datei hat denselben Namen und das Suffix.jar
. Im folgenden Beispiel heißt die resultierende Test-JARHelloWorldHostTest.jar
. Darüber hinaus definiert diese Einstellung auch einen Make-Zielnamen für Ihr Modul, sodass Siemake [options] <HelloWorldHostTest>
verwenden können, um Ihr Testmodul und alle seine Abhängigkeiten zu erstellen.name: "HelloWorldHostTest",
Durch die Einstellung
test_suites
ist der Test für die Testumgebung der Trade Federation leicht erkennbar. Hier können weitere Testsuiten wie CTS hinzugefügt werden, sodass der JAR-Host-Testtest gemeinsam genutzt werden kann.test_suites: ["general-tests"],
Die Einstellung
static_libs
weist das Build-System an, die Inhalte der benannten Module in das resultierende APK des aktuellen Moduls zu integrieren. Das bedeutet, dass von jedem benannten Modul erwartet wird, dass es eine.jar
Datei erzeugt. Der Inhalt des Moduls wird zum Auflösen von Klassenpfadverweisen während der Kompilierungszeit verwendet und in das resultierende APK integriert.static_libs: [ "junit", ],