Inclure les tests unitaires et fonctionnels

Cette section explique comment exécuter et contribuer aux tests de la Fédération du commerce après avoir apporté une modification au projet. Ceci comprend:

  • Où ajouter les nouvelles classes de tests unitaires
  • Exécution de tests unitaires dans Eclipse et en dehors de l'IDE Eclipse
  • Où ajouter des tests fonctionnels
  • Exécution des tests fonctionnels
  • Exécution locale d'une partie de la validation de pré-soumission 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 : L'ajout de vos nouvelles classes de tests unitaires à ces emplacements entraînera leur exécution automatique en pré-soumission sans configuration supplémentaire.

Exécuter des tests unitaires

Tous les tests unitaires et tests fonctionnels AOSP pour Trade Federation se trouvent dans le projet tools/tradefederation/core/tests .

Dans Eclipse, pour exécuter un test unitaire individuel, cliquez simplement avec le bouton droit sur le test et sélectionnez 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 des sources de Tradefed 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 en utilisant Trade Federation elle-même ; ils nécessitent un appareil Android. Tous les tests fonctionnels doivent suivre la convention de dénomination *FuncTest .

Vérifier les résultats des tests unitaires

Lors de l'exécution de run_tradefed_tests.sh , les tests unitaires testent toutes les parties du faisceau de tests, y compris certaines conditions d'erreur. Il imprimera une sortie détaillée sur la console, y compris les traces de pile.

Le résumé final des résultats indiquera si une panne 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, donc si un échec survient lors 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 .

  • Si vos méthodes de test ont du sens à intégrer l’une des sous-classes de la suite existante, préférez l’ajouter ici. 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 :

  1. Assurez-vous qu'un périphérique est connecté à l'hôte et que adb et si nécessaire fastboot se trouvent dans le PATH d'Eclipse. Le moyen le plus simple de procéder consiste à lancer Eclipse à partir d’une configuration shell avec le PATH approprié.
  2. Créez une application Java. Exécutez la configuration via Exécuter > Exécuter les 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 Exécuter .

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

  1. Construire 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 éventuellement choisir le périphérique en ajoutant --serial <serial no> tel qu'il apparaît dans la sortie de adb devices .

Exécuter des tests de pré-soumission TF par rapport aux modifications locales

Si vous souhaitez exécuter de la même manière que la pré-soumission TF, utilisez ceci :

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Cela déclenchera tous les tests de pré-soumission TF sur votre TF construit localement pour vous aider à valider que votre modification ne rompt 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 de télécharger le CL.