Inclure les tests unitaires et fonctionnels

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 dans com.android.tradefed.DeviceFuncTests. Sinon, la définition de la suite se trouve dans com.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:

  1. 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é.
  2. Créer une application Java Exécutez la configuration via Run > Run configurations (Exécuter > Exécuter des configurations).
  3. Définissez le projet sur tradefed-tests et la classe principale sur com.android.tradefed.command.CommandRunner.
  4. Exécutez m tradefed-all.
  5. Fournissez les arguments de ligne de commande suivants dans l'onglet Arguments: host --class <full path of test class to run>
  6. Cliquez sur Run (Exécuter).

Pour exécuter des tests fonctionnels en dehors d'Eclipse.

  1. Créez une fédération commerciale.
  2. Connectez un appareil Android à l'hôte.
  3. Exécutez tools/tradefederation/core/javatests/run_tradefed_func_tests.sh.
  4. Vous pouvez également choisir l'appareil en ajoutant --serial <serial no> tel qu'il apparaît dans la sortie de adb 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.