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 tests unitaires 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, il vous suffit de faire un clic droit sur le test, puis 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 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
Lors de l'exécution de run_tradefed_tests.sh
, les tests unitaires exécutent toutes les parties du harnais de test, y compris certaines conditions d'erreur. Il imprime une sortie détaillée dans la console, y compris des traces de pile.
Le résumé final des résultats indiquera si un échec s'est produit ou non.
Exemple de résumé 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 n'importe quelle 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
.S'il est judicieux de placer vos méthodes de test dans l'une des sous-classes de la suite existante, ajoutez-la de préférence. 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. Pour ce faire, le moyen le plus simple consiste à lancer Eclipse à partir d'une configuration de shell avec le PATH approprié. - Créer 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.
- Créez une fédération commerciale.
- 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é-envoi 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.