Includi test di unità e funzionali

Questa sezione spiega come eseguire i test di Trade Federation e contribuire a questi test dopo aver apportato una modifica al progetto. tra cui:

  • Dove aggiungere le nuove classi di test unitari
  • Esecuzione di test delle unità in Eclipse e al di fuori dell'IDE Eclipse
  • Dove aggiungere i test funzionali
  • Esecuzione dei test funzionali
  • Esecuzione locale di alcuni controlli di convalida pre-invio di TF

Aggiungere test delle unità

In Android Open Source Project (AOSP), aggiungi la classe dei test unitari in: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

IMPORTANTE: l'aggiunta delle nuove classi di test unitari a queste posizioni comporterà la loro esecuzione automatica in pre-invio senza configurazione aggiuntiva.

Esegui test delle unità

Tutti i test delle unità e funzionali AOSP per Trade Federation si trovano nel progetto tools/tradefederation/core/tests.

In Eclipse, per eseguire un singolo test unitario, fai clic con il tasto destro del mouse sul test e seleziona Esegui come > JUnit. Per eseguire tutti i test delle unità, esegui la suite com.android.tradefed.UnitTests.

Puoi anche avviare il test delle unità dalla riga di comando nell'albero delle origini di Tradefed dopo la compilazione, come segue: tools/tradefederation/core/javatests/run_tradefed_tests.sh

I test delle unità possono essere eseguiti in modo autonomo, ma i test funzionali devono essere eseguiti utilizzando Trade Federation stesso; richiedono un dispositivo Android. Tutti i test funzionali devono seguire la convenzione di denominazione *FuncTest.

Controllare i risultati dei test delle unità

Quando esegui run_tradefed_tests.sh, i test delle unità esercitano tutte le parti del test harness, incluse alcune condizioni di errore. Stamperà l'output dettagliato nella console, incluse le analisi dello stack.

Il riepilogo finale dei risultati indicherà se si è verificato un errore o meno.

Esempio di riepilogo finale nella console:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

Tutti i test vengono mantenuti per essere superati, quindi se si verifica un errore nella modifica locale, assicurati che i test vengano corretti.

Aggiungere test funzionali

  • Se il test funzionale coinvolge un dispositivo (utilizza qualsiasi API ITestDevice), la definizione della suite si trova in com.android.tradefed.DeviceFuncTests. In caso contrario, la definizione della suite si trova in com.android.tradefed.FuncTests.

  • Se i tuoi metodi di test hanno senso di essere inseriti in una delle sottoclassi della suite esistenti, preferisci aggiungerli lì. In caso contrario, puoi aggiungere un nuovo corso alla suite applicabile.

  • In entrambi i casi, se lo aggiungi alla suite, il test viene eseguito automaticamente nella pipeline CI insieme agli altri test funzionali.

Esegui test funzionali

Per eseguire un test funzionale da Eclipse:

  1. Assicurati che un dispositivo sia connesso all'host e che adb e, se necessario, fastboot si trovino nel PATH di Eclipse. Il modo più semplice per farlo è avviare Eclipse da una configurazione della shell con il PATH corretto.
  2. Crea un'applicazione Java. Esegui la configurazione tramite Esegui > Esegui configurazioni.
  3. Imposta il progetto su tradefed-tests e la classe principale su com.android.tradefed.command.CommandRunner.
  4. Esegui m tradefed-all.
  5. Fornisci i seguenti argomenti della riga di comando nella scheda Arguments (Argomenti): host --class <full path of test class to run>
  6. Fai clic su Esegui.

Per eseguire test funzionali al di fuori di Eclipse.

  1. Costruisci la Federazione dei mercanti.
  2. Collega un dispositivo Android all'host.
  3. Esegui tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Se vuoi, scegli il dispositivo aggiungendo --serial <serial no> come appare nell'output di adb devices.

Esegui test di pre-invio di TF sulle modifiche locali

Se vuoi eseguire l'operazione in modo simile al preinvio di TF, utilizza questo comando:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

In questo modo, verranno attivati tutti i test di preinvio di TF sul TF creato localmente per aiutarti a verificare che la modifica non interrompa alcun test.

I test di pre-invio di TF sono un superset dei test unità precedenti, ma sono più lenti da eseguire. Pertanto, ti consigliamo di eseguire i test delle unità durante lo sviluppo per una convalida più rapida e di eseguire i preinvii prima di caricare la CL.