Tests de l'hôte JAR

Vous devez implémenter des tests hôtes d'archive Java (JAR) 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 de modèle suivant fournit un exemple de test d'hôte JAR Hello World simple à copier et à adapter à vos besoins : platform_testing/tests/example/jarhosttest/Android.bp

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

Pour plus de commodité, voici un instantané du fichier de modèle:

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 name est obligatoire lorsque le type de module java_test_host est spécifié (au début du bloc). Ce paramètre attribue un nom à votre module. Le fichier JAR obtenu porte le même nom et comporte un 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 de compilation pour votre module, afin que vous puissiez utiliser make [options] <HelloWorldHostTest> pour compiler votre module de test et toutes ses dépendances.

    name: "HelloWorldHostTest",
    
  • Le paramètre test_suites permet au harnais de test de la fédération du commerce de trouver facilement le test. Vous pouvez ajouter d'autres suites de tests ici, comme CTS, afin que le test de l'hôte JAR puisse être partagé.

    test_suites: ["general-tests"],
    
  • Le paramètre static_libs indique 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é doit produire un fichier .jar. Le contenu du module est utilisé pour résoudre les références de chemin d'accès au moment de la compilation et est intégré à l'APK généré.

    static_libs: [
        "junit",
    ],