Les tests hôtes d'archive Java (JAR) doivent être implémentés pour fournir une couverture complète du code de votre logiciel. Suivez les instructions pour créer des tests unitaires locaux. Écrivez de petits tests unitaires pour valider une fonction spécifique et rien d'autre.
Exemple
Le fichier Blueprint suivant fournit un exemple simple de test d'hôte JAR Hello World à copier et à adapter à vos besoins : platform_testing/tests/example/jarhosttest/Android.bp
Cela correspond au code de test réel disponible à l'adresse suivante : platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Pour plus de commodité, un instantané du fichier Blueprint est inclus ici :
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
La déclaration java_test_host au début indique qu'il s'agit d'un test d'hôte JAR. Pour voir un exemple d'utilisation, consultez :
frameworks/base/tools/powermodel/Android.bp
Paramètres
Vous trouverez ci-dessous des explications sur les paramètres suivants :
Le paramètre
nameest obligatoire lorsque le type de modulejava_test_hostest spécifié (au début du bloc). Ce paramètre permet de donner un nom à votre module. Le fichier JAR obtenu porte le même nom et le suffixe.jar. Dans l'exemple ci-dessous,le fichier JAR de test obtenu est nomméHelloWorldHostTest.jar. En outre, ce paramètre définit également un nom de cible make pour votre module, afin que vous puissiez utilisermake [options] <HelloWorldHostTest>pour compiler votre module de test et toutes ses dépendances.name: "HelloWorldHostTest",Le paramètre
test_suitespermet au harnais de test Trade Federation de découvrir facilement le test. D'autres suites de tests peuvent être ajoutées ici, comme CTS, afin que le test hôte JAR puisse être partagé.test_suites: ["general-tests"],Le paramètre
static_libsindique au système de compilation d'intégrer le contenu des modules nommés dans l'APK résultant du module actuel. Cela signifie que chaque module nommé est censé produire un fichier.jar. Le contenu du module est utilisé pour résoudre les références du chemin de classe lors de la compilation et est intégré à l'APK obtenu.static_libs: [ "junit", ],