Test degli host JAR

I test host Java Archive (JAR) devono essere implementati per fornire una copertura completa del codice del software. Segui le istruzioni per creare test unitari locali. Scrivi piccoli test delle unità per convalidare una funzione specifica e nient'altro.

Esempio

Il seguente file Blueprint fornisce un semplice esempio di test host JAR Hello World da copiare e adattare alle tue esigenze: platform_testing/tests/example/jarhosttest/Android.bp

Corrisponde al codice di test effettivo che si trova in: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

Per comodità, ecco un'istantanea del file Blueprint:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

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

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

La dichiarazione java_test_host all'inizio indica che si tratta di un test host JAR. Vedi un esempio del suo utilizzo in: frameworks/base/tools/powermodel/Android.bp

Impostazioni

Di seguito sono riportate le spiegazioni delle seguenti impostazioni:

  • L'impostazione name è obbligatoria quando viene specificato il tipo di modulo java_test_host (all'inizio del blocco). Questa impostazione assegna un nome al modulo e il file JAR risultante ha lo stesso nome e il suffisso .jar. Nell'esempio seguente,il file JAR di test risultante è denominato HelloWorldHostTest.jar. Inoltre, questa impostazione definisce anche un nome di destinazione make per il modulo, in modo da poter utilizzare make [options] <HelloWorldHostTest> per creare il modulo di test e tutte le relative dipendenze.

    name: "HelloWorldHostTest",
    
  • L'impostazione test_suites rende il test facilmente individuabile dal framework di test Trade Federation. Qui possono essere aggiunte altre suite di test, come CTS, in modo che il test host JAR possa essere condiviso.

    test_suites: ["general-tests"],
    
  • L'impostazione static_libs indica al sistema di build di incorporare i contenuti dei moduli denominati nell'APK risultante del modulo corrente. Ciò significa che ogni modulo denominato deve produrre un file .jar. I contenuti del modulo vengono utilizzati per risolvere i riferimenti al classpath durante la compilazione e incorporati nell'APK risultante.

    static_libs: [
        "junit",
    ],