Inclure les tests unitaires et fonctionnels

Cette section explique comment exécuter les tests de la fédération du commerce 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 en local une partie de la validation avant 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 tests unitaires à ces emplacements, s'exécutent automatiquement avant l'envoi sans configuration supplémentaire.

Exécuter des tests unitaires

Tous les tests unitaires AOSP et tests fonctionnels pour la fédération du commerce sont situés dans la tools/tradefederation/core/tests projet.

Dans Eclipse, pour exécuter un test unitaire individuel, il vous suffit de faire un clic droit sur le test sélectionnez Exécuter en tant que > JUnit. Pour exécuter tous les tests unitaires, exécutez la commande com.android.tradefed.UnitTests.

Vous pouvez également lancer le test unitaire à partir de la ligne de commande dans la source Tradefed arbre après la construction, comme ceci: 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. par le biais de la fédération commerciale elle-même ; elles nécessitent un appareil Android. Toutes fonctionnelles les tests 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 de l'exploitation de test, y compris certaines conditions d'erreur. Elle affichera une sortie détaillée à la console, y compris les traces de la pile.

Le résumé final des résultats indiquera si une erreur s'est produite 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 maintenus pour réussir. Par conséquent, en cas d'échec sur 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) : se trouve dans com.android.tradefed.DeviceFuncTests. Sinon, la définition de la suite se trouve dans com.android.tradefed.FuncTests.

  • Si vos méthodes de test sont logiques à placer dans l'une des sous-classes de la suite existante, je préfère l'ajouter à cet endroit. Sinon, n'hésitez pas à ajouter une nouvelle classe suite.

  • Dans les deux cas, en l'ajoutant à la suite, votre test sera 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 Les fastboot se trouvent dans la variable PATH d'Eclipse. Le moyen le plus simple de le faire est de lancer Éclipse d'une configuration de shell avec le PATH approprié
  2. Créer une application Java Exécutez la configuration via Run > Exécuter de configuration.
  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. Indiquez 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éer une fédération de commerce.
  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>. apparaît dans la sortie de adb devices.

Exécuter des tests de pré-envoi TF sur les modifications locales

Si vous souhaitez l'exécuter de la même manière que le presubmit TF, utilisez ceci:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Cela déclenchera tous les tests de préenvoi TF sur votre TF compilé localement pour vous aident à vérifier que votre modification ne casse pas les tests.

Les tests de préenvoi TF sont un sur-ensemble des tests unitaires ci-dessus, mais ils sont plus lents à les exécuter. Il est donc recommandé d'exécuter les tests unitaires pendant le développement une validation plus rapide et d'exécuter les préenvois avant d'importer la CL.