JAR-Hosttests

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 Modultyp java_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-JAR HelloWorldHostTest.jar . Darüber hinaus definiert diese Einstellung auch einen Make-Zielnamen für Ihr Modul, sodass Sie make [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",
    ],