Includere test unitari e funzionali

Questa sezione spiega come eseguire e contribuire ai test della Federazione dei Mercanti dopo aver apportato una modifica al progetto. Ciò comprende:

  • Dove aggiungere le nuove classi di unit test
  • Esecuzione di unit test in Eclipse e all'esterno dell'IDE Eclipse
  • Dove aggiungere test funzionali
  • Esecuzione dei test funzionali
  • Esecuzione locale di alcune convalide pre-invio TF

Aggiungi test unitari

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

IMPORTANTE: l'aggiunta delle nuove classi di test unitario a queste posizioni ne comporterà l'esecuzione automatica in fase di preinvio senza alcuna configurazione aggiuntiva.

Esegui test unitari

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

All'interno di Eclipse, per eseguire un test unitario individuale, è sufficiente fare clic con il pulsante destro del mouse sul test e selezionare Esegui come > JUnit . Per eseguire tutti i test unitari, esegui la suite com.android.tradefed.UnitTests .

Puoi anche avviare lo unit test dalla riga di comando nell'albero dei sorgenti di Tradefed dopo la creazione, in questo modo: tools/tradefederation/core/javatests/run_tradefed_tests.sh

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

Controllare i risultati dei test unitari

Quando si esegue run_tradefed_tests.sh , i test unitari esercitano tutte le parti del test cablaggio incluse alcune condizioni di errore. Stamperà un output dettagliato sulla console, incluse le tracce 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 sulla modifica locale, assicurati che i test siano risolti.

Aggiungi test funzionali

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

  • Se è opportuno inserire i tuoi metodi di test in una delle sottoclassi della suite esistenti, preferisci aggiungerla lì. Altrimenti, sentiti libero di aggiungere una nuova classe alla suite applicabile.

  • In entrambi i casi, aggiungendolo alla suite, il test verrà eseguito automaticamente nella pipeline CI con gli altri test funzionali.

Eseguire test funzionali

Per eseguire un test funzionale da Eclipse:

  1. Assicurarsi che un dispositivo sia connesso all'host e che adb e, se necessario, fastboot siano nel PERCORSO di Eclipse. Il modo più semplice per farlo è avviare Eclipse da una configurazione della shell con il PERCORSO corretto.
  2. Creare 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. Fornire i seguenti argomenti della riga di comando nella scheda Argomenti : host --class <full path of test class to run>
  6. Fare clic su Esegui .

Per eseguire test funzionali all'esterno di Eclipse.

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

Esegui test di preinvio TF rispetto alle modifiche locali

Se vuoi eseguire in modo simile al preinvio TF, usa questo:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Ciò attiverà tutti i test di preinvio della TF rispetto alla TF creata localmente per aiutarti a verificare che la tua modifica non interrompa alcun test.

I test di preinvio TF sono un superset degli unit test di cui sopra, ma è più lento eseguirli. Pertanto si consiglia di eseguire gli unit test durante lo sviluppo per una convalida più rapida ed eseguire i preinvii prima di caricare il CL.