JAR-Hosttests

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 Modultyp java_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 Namen HelloWorldHostTest.jar. Außerdem wird mit dieser Einstellung auch ein Make-Zielname für Ihr Modul definiert, sodass Sie make [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",
    ],