Tests d'hôte JAR,Tests d'hôte JAR,Tests d'hôte JAR,Tests d'hôte JAR

Les tests hôtes des archives 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 de plus.

Exemple

Le fichier Blueprint suivant fournit un exemple simple de test d'hôte Hello World JAR à copier et à adapter à vos besoins : platform_testing/tests/example/jarhosttest/Android.bp

Cela correspond au code de test réel trouvé dans : platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

Un instantané du fichier Blueprint est inclus ici pour plus de commodité :

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 hôte JAR. Voir un exemple de son utilisation dans : frameworks/base/tools/powermodel/Android.bp

Paramètres

Voir ci-dessous pour des explications sur les paramètres suivants :

  • Le paramètre name est requis lorsque le type de module java_test_host est spécifié (au début du bloc). Ce paramètre donne un nom à votre module et le JAR résultant porte le même nom et un suffixe .jar . Dans l'exemple ci-dessous, le JAR de test résultant est nommé HelloWorldHostTest.jar . De plus, ce paramètre définit également un nom de cible make pour votre module, afin que vous puissiez utiliser make [options] <HelloWorldHostTest> pour construire votre module de test et toutes ses dépendances.

    name: "HelloWorldHostTest",
    
  • Le paramètre test_suites rend le test facilement détectable par le harnais de test de la Trade Federation. D'autres suites de tests peuvent être ajoutées ici, telles que CTS, afin que le test de test de l'hôte JAR puisse être partagé.

    test_suites: ["general-tests"],
    
  • Le paramètre static_libs demande au système de build d'incorporer le contenu des modules nommés dans l'APK résultant du module actuel. Cela signifie que chaque module nommé devrait produire un fichier .jar . Le contenu du module est utilisé pour résoudre les références de chemin de classe pendant la compilation et incorporé dans l'APK résultant.

    static_libs: [
        "junit",
    ],