Cette section explique comment exécuter les tests Trade Federation et y contribuer après avoir apporté une modification au projet. Par exemple :
- Où ajouter les nouvelles classes de tests unitaires
- 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 une partie de la validation TF avant l'envoi localement
Ajouter des tests unitaires
Dans le projet Android Open Source (AOSP), ajoutez la classe de tests unitaires dans : tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
IMPORTANT : Si vous ajoutez vos nouvelles classes de tests unitaires à 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, il vous suffit d'effectuer un clic droit sur le test et de sélectionner 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 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 lui-même. Ils nécessitent un appareil Android. Tous les tests fonctionnels doivent respecter la convention de dénomination *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 harnais de test, y compris certaines conditions d'erreur. Il affichera une sortie détaillée dans la console, y compris les 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 doivent réussir. Si un échec se produit lors de votre modification locale, veuillez vous assurer 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 suite existantes, préférez les ajouter à cet endroit. Sinon, n'hésitez pas à ajouter une nouvelle 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 depuis Eclipse :
- Assurez-vous qu'un appareil est connecté à l'hôte et que
adb
et, si nécessaire,fastboot
se trouvent dans le chemin d'accès d'Eclipse. Le moyen le plus simple consiste à lancer Eclipse à partir d'une configuration shell avec le PATH approprié. - Créez une application Java. Exécutez la configuration via Run > Run configurations (Exécuter > Exécuter les configurations).
- Définissez le projet sur
tradefed-tests
et la classe principale surcom.android.tradefed.command.CommandRunner
. - Exécutez
m tradefed-all
. - Indiquez 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.
- Construisez la Fédération du commerce.
- 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 le test de la même manière que le pré-commit 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 n'entraîne pas l'échec d'un 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 tests de pré-soumission avant d'importer la CL.