À 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.
GoogleTest
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Un GoogleTest (GTest, parfois appelé "tests natifs") pour la plate-forme accède généralement à des HAL de niveau inférieur ou effectue une IPC brute sur divers services système. Par conséquent, l'approche de test est généralement étroitement liée au service testé.
Pour intégrer l'infrastructure de test continu, créez vos GTests à l'aide du framework GTest.
Exemples
Voici quelques exemples de GTest dans la source de la plate-forme:
Résumé des étapes
Suivez l'exemple de configuration du module GTest.
Pour inclure automatiquement les dépendances GTest, utilisez la règle de compilation BUILD_NATIVE_TEST
dans la configuration de votre module de test.
Écrivez une configuration de test en suivant les exemples pour les options simples et complexes.
Créez le module de test avec mmm
pour les builds incrémentaux ou mma
pour les builds complets:
make hwui_unit_tests -j
Exécutez le test en local à l'aide d'Atest:
atest hwui_unit_tests
Vous pouvez également ajouter des arguments à vos GTests. Les arguments suivants sont particulièrement utiles:
Exécutez le test avec le banc d'essais de la Trade Federation:
make tradefed-all -j
tradefed.sh run template/local_min --template:map test=hwui_unit_tests
Installez et exécutez manuellement:
Transférez le binaire de test généré sur votre appareil:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
/data/nativetest/hwui_unit_tests/hwui_unit_tests
Lancez GTest et exécutez le test en appelant le binaire de test sur l'appareil:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
Pour en savoir plus sur la personnalisation de l'exécution des tests, ajoutez le paramètre --help
à votre binaire de test. Pour en savoir plus sur les paramètres, consultez le guide avancé de GTest.
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,["# GoogleTest\n\nA GoogleTest (GTest, also sometimes called \"native tests\") for the platform\ntypically accesses lower-level HALs or performs raw IPC against various system\nservices. Because of this, the testing approach is usually tightly coupled with\nthe service under test.\n\nTo integrate with continuous testing infrastructure, build your GTests\nusing the [GTest](https://github.com/google/googletest)\nframework.\n\nExamples\n--------\n\nHere are some examples of GTest in the platform source:\n\n- [frameworks/av/camera/tests](https://android.googlesource.com/platform/frameworks/av/+/android16-release/camera/tests/)\n- [frameworks/native/libs/gui/tests](https://android.googlesource.com/platform/frameworks/native/+/android16-release/libs/gui/tests/)\n\nSummary of steps\n----------------\n\n1. Follow the [example GTest module setup](https://android.googlesource.com/platform/frameworks/base/+/android16-release/libs/hwui/tests/unit/).\n\n2. To automatically include GTest dependencies, use the `BUILD_NATIVE_TEST`\n build rule in your test module configuration.\n\n3. Write a test configuration, following the examples for [simple](/docs/core/tests/development/blueprints)\n and [complex](/docs/core/tests/development/test-config) options.\n\n4. Build the test module with `mmm` for incremental builds, or `mma` for full\n builds:\n\n make hwui_unit_tests -j\n\n5. Run the test locally using [Atest](/docs/core/tests/development/atest):\n\n atest hwui_unit_tests\n\n You can also add arguments to your GTests. The following are especially useful arguments:\n - `native-test-flag` specifies additional flag values to pass to the GTest shell command.\n - `native-test-timeout` specifies a test timeout value in microseconds.\n\n The following example code uses both of these arguments: \n\n atest test-name -- --module-arg test-name:native-test-flag:\"\\\"argument1 argument2\\\"\" \\\n --module-arg test-name:native-test-timeout:60000\n\n6. Run the test with the Trade Federation test harness:\n\n make tradefed-all -j\n tradefed.sh run template/local_min --template:map test=hwui_unit_tests\n\n7. Manually install and run:\n\n 1. Push the generated test binary onto your device:\n\n adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \\\n /data/nativetest/hwui_unit_tests/hwui_unit_tests\n\n 2. Launch GTest and execute the test by invoking the test binary on the device:\n\n adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests\n\n For more information about customizing test execution, add the `--help`\n parameter to your test binary. For more information on parameters, refer to\n the [GTest advanced guide](https://github.com/google/googletest/blob/master/googletest/docs/advanced.md)."]]