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 incom.android.tradefed.DeviceFuncTests
. Altrimenti, la definizione della suite si trova incom.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:
- 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. - Creare un'applicazione Java. Esegui la configurazione tramite Esegui > Esegui configurazioni .
- Imposta il progetto su
tradefed-tests
e la classe principale sucom.android.tradefed.command.CommandRunner
. - Esegui
m tradefed-all
. - Fornire i seguenti argomenti della riga di comando nella scheda Argomenti :
host --class <full path of test class to run>
- Fare clic su Esegui .
Per eseguire test funzionali all'esterno di Eclipse.
- Costruisci la Federazione dei Mercanti.
- Connetti un dispositivo Android all'host.
- Esegui
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Facoltativamente, scegli il dispositivo aggiungendo
--serial <serial no>
come appare nell'output diadb 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.