Cette section explique comment exécuter et contribuer aux tests de la Trade Federation après avoir modifié le projet. Par exemple :
- Où ajouter les nouvelles classes de test unitaire
- Exécuter des tests unitaires dans Eclipse et en dehors de l'IDE Eclipse
- Où ajouter des tests fonctionnels ?
- Exécuter les tests fonctionnels
- Exécuter localement une partie de la validation préalable à l'envoi de TF
Ajouter des tests unitaires
Dans le projet Android Open Source (AOSP), ajoutez la classe de test unitaire dans : tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
IMPORTANT: Si vous ajoutez vos nouvelles classes de test unitaire à ces emplacements, elles s'exécuteront automatiquement en présoumission sans configuration supplémentaire.
Exécuter des tests unitaires
Tous les tests unitaires et fonctionnels AOSP pour Trade Federation se trouvent dans le projet tools/tradefederation/core/tests
.
Dans Eclipse, pour exécuter un test unitaire individuel, effectuez un clic droit sur le test, puis sélectionnez Run As > JUnit (Exécuter en tant que > JUnit). Pour exécuter tous les tests unitaires, exécutez la suite com.android.tradefed.UnitTests.
Vous pouvez également démarrer le test unitaire à partir de la ligne de commande dans l'arborescence source de Tradefed après la compilation, comme suit :
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Les tests unitaires peuvent être exécutés de manière autonome, mais les tests fonctionnels doivent être exécutés à l'aide de Trade Federation elle-même. Ils nécessitent un appareil Android. Tous les tests fonctionnels doivent respecter la convention d'attribution de noms *FuncTest
.
Vérifier les résultats des tests unitaires
Lorsque vous exécutez run_tradefed_tests.sh
, les tests unitaires exercent toutes les parties du banc d'essais, y compris certaines conditions d'erreur. Il imprime une sortie détaillée dans la console, y compris des traces de pile.
Le récapitulatif final des résultats indiquera si un échec s'est produit ou non.
Exemple de récapitulatif final dans la console:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Tous les tests sont configurés pour réussir. Par conséquent, en cas d'échec de votre modification locale, assurez-vous que les tests sont corrigés.
Ajouter des tests fonctionnels
Si votre test fonctionnel implique un appareil (utilise une API
ITestDevice
), la définition de la suite se trouve danscom.android.tradefed.DeviceFuncTests
. Sinon, la définition de la suite se trouve danscom.android.tradefed.FuncTests
.Si vos méthodes de test ont du sens dans l'une des sous-classes de la suite existantes, préférez les y ajouter. Sinon, n'hésitez pas à ajouter une classe à la suite applicable.
Dans les deux cas, en l'ajoutant à la suite, votre test est automatiquement exécuté dans le pipeline CI avec les autres tests fonctionnels.
Exécuter des tests fonctionnels
Pour exécuter un test fonctionnel à partir d'Eclipse:
- Assurez-vous qu'un appareil est connecté à l'hôte et que
adb
et, si nécessaire,fastboot
figurent dans le PATH d'Eclipse. Le moyen le plus simple de le faire est de lancer Eclipse à partir d'une configuration de shell avec le PATH approprié. - Créez une application Java. Exécutez la configuration via Run > Run configurations (Exécuter > Exécuter des configurations).
- Définissez le projet sur
tradefed-tests
et la classe principale surcom.android.tradefed.command.CommandRunner
. - Exécutez
m tradefed-all
. - Fournissez les arguments de ligne de commande suivants dans l'onglet Arguments:
host --class <full path of test class to run>
- Cliquez sur Run (Exécuter).
Pour exécuter des tests fonctionnels en dehors d'Eclipse.
- Build Trade Federation.
- Connectez un appareil Android à l'hôte.
- Exécutez
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
. - Vous pouvez également choisir l'appareil en ajoutant
--serial <serial no>
tel qu'il apparaît dans la sortie deadb devices
.
Exécuter des tests de présoumission TF sur les modifications locales
Si vous souhaitez exécuter une commande semblable à celle de la présoumission TF, utilisez la commande suivante:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Cela déclenchera tous les tests de présoumission TF sur votre TF créé localement pour vous aider à vérifier que votre modification ne casse aucun test.
Les tests de présoumission TF sont un sur-ensemble des tests unitaires ci-dessus, mais leur exécution est plus lente. Il est donc recommandé d'exécuter les tests unitaires pendant le développement pour une validation plus rapide et d'exécuter les présoumissions avant d'importer le CL.