JAR-Hosttests

Java Archive (JAR)-Hosttests sollten implementiert werden, um vollständigen Code bereitzustellen Abdeckung Ihrer Software. Folgen Sie der Anleitung zum Erstellen lokaler Unit-Tests. Schreiben Sie kleine Einheitentests, um nur eine bestimmte Funktion zu validieren.

Beispiel

Die folgende Blueprint-Datei enthält ein einfaches Beispiel für einen Hello World-JAR-Hosttest kopieren und an Ihre Bedürfnisse anpassen: platform_testing/tests/beispiel/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 finden Sie hier einen Snapshot der Blueprint-Datei:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

Die Deklaration java_test_host am Anfang gibt an, dass es sich um eine JAR-Datei handelt Host-Test. Ein Beispiel für die Verwendung finden Sie hier: frameworks/base/tools/powermodel/Android.bp

Einstellungen

Unten finden Sie Erläuterungen zu den folgenden Einstellungen:

  • Die Einstellung name ist erforderlich, wenn der Modultyp java_test_host angegeben wird (am Anfang des Blocks). Mit dieser Einstellung wird Ihr Modul und die resultierende JAR-Datei hat denselben Namen und das Suffix .jar. Im im Beispiel unten hat die resultierende Test-JAR den Namen HelloWorldHostTest.jar. In Mit dieser Einstellung wird auch ein Zielname für Ihr Modul definiert. das Sie make [options] <HelloWorldHostTest> zum Erstellen Ihres Tests verwenden können, und allen zugehörigen Abhängigkeiten enthält.

    name: "HelloWorldHostTest",
    
  • Durch die Einstellung „test_suites“ ist der Test für Trader leicht zu finden Föderations-Test-Harnisch. Hier können weitere Testsuiten hinzugefügt werden, z. B. CTS, damit der JAR-Hosttesttest freigegeben 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 von jedem benannten Modul erwartet wird, dass es eine .jar-Datei erstellt. Der Inhalt des Moduls wird zum Auflösen von Klassenpfadverweisen während und in das resultierende APK integriert.

    static_libs: [
        "junit",
    ],