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 modulojava_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 è denominatoHelloWorldHostTest.jar
. Inoltre, questa impostazione definisce anche un nome di destinazione make per il modulo, in modo da poter utilizzaremake [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", ],