À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Tests d'hôte JAR
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Des tests hôtes d'archives Java (JAR) doivent être implémentés pour fournir une couverture de code complète 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 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 disponible à l'adresse :
platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Pour plus de commodité, voici un instantané du fichier de plan:
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 généré porte le même nom et un suffixe .jar
. Dans l'exemple ci-dessous,le fichier JAR de test généré est nommé HelloWorldHostTest.jar
. De plus, 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 de rendre le test facilement détectable par le banc d'essais de la Trade Federation. 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 généré 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",
],
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# JAR host tests\n\nJava archive (JAR) host tests should be implemented to provide complete code\ncoverage of your software. Follow the instructions to [Build local unit\ntests](https://developer.android.com/training/testing/unit-testing/local-unit-tests).\nWrite small unit tests to validate a specific function and nothing more.\n\nExample\n-------\n\nThe following Blueprint file provides a simple Hello World JAR host test example\nto copy and adapt to your needs:\n[platform_testing/tests/example/jarhosttest/Android.bp](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/Android.bp)\n\nThis corresponds to the actual test code found at:\n[platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java](https://android.googlesource.com/platform/platform_testing/+/android16-release/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java)\n\nA snapshot of the Blueprint file is included here for convenience: \n\n java_test_host {\n name: \"HelloWorldHostTest\",\n\n test_suites: [\"general-tests\"],\n\n srcs: [\"test/**/*.java\"],\n\n static_libs: [\n \"junit\",\n \"mockito\",\n ],\n }\n\nThe `java_test_host` declaration at the beginning indicates that this is a JAR\nhost test. See an example of its use in:\n[frameworks/base/tools/powermodel/Android.bp](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/tools/powermodel/Android.bp)\n\nSettings\n--------\n\nSee below for explanations of the following settings:\n\n- The `name` setting is required when the `java_test_host` module type is\n specified (at the start of the block). This setting gives a name to your\n module, and the resulting JAR has the same name and a `.jar` suffix. In the\n example below,the resulting test JAR is named `HelloWorldHostTest.jar`. In\n addition, this setting also defines a make target name for your module, so\n that you can use `make [options] \u003cHelloWorldHostTest\u003e` to build your test\n module and all its dependencies.\n\n name: \"HelloWorldHostTest\",\n\n- The `test_suites` setting makes the test easily discoverable by the Trade\n Federation test harness. Other test suites can be added here, such as CTS,\n so that the JAR host test test can be shared.\n\n test_suites: [\"general-tests\"],\n\n- The `static_libs` setting instructs the build system to incorporate the\n contents of the named modules into the resulting APK of the current module.\n This means that each named module is expected to produce a `.jar` file.\n The module's content is used for resolving classpath references during\n compile time and incorporated into the resulting APK.\n\n static_libs: [\n \"junit\",\n ],"]]