Questa sezione spiega come eseguire e contribuire ai test della Trade Federation dopo aver apportato una modifica al progetto. e include:
- Dove aggiungere le nuove classi di test delle unità
- Eseguire test di unità in Eclipse e al di fuori dell'IDE Eclipse
- Dove aggiungere i test funzionali
- Eseguire i test funzionali
- Eseguire localmente alcune convalide TF pre-submit
Aggiungere test di unità
In Android Open Source Project (AOSP), aggiungi la classe dei test delle unità in: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
IMPORTANTE: l'aggiunta dei nuovi test di unità a queste posizioni comporterà la loro esecuzione automatica in presubmit senza configurazione aggiuntiva.
Esegui test di unità
Tutti i test delle unità e i test funzionali di AOSP per Trade Federation si trovano nel progetto
tools/tradefederation/core/tests
.
In Eclipse, per eseguire un singolo test di unità, 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 di unità dalla riga di comando nell'albero di origine 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 stessa; 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 di unità esercitano tutte le parti del test harness, incluse alcune condizioni di errore. Verrà stampato un output dettagliato
nella console, incluse le analisi dello stack.
Il riepilogo finale dei risultati indicherà se si è verificato o meno un errore.
Riepilogo finale di esempio nella console:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Tutti i test vengono mantenuti per superare, quindi se si verifica un errore nella modifica locale, assicurati che i test siano stati corretti.
Aggiungere test funzionali
Se il test funzionale coinvolge un dispositivo (utilizza qualsiasi API
ITestDevice
), la definizione della suite si trova incom.android.tradefed.DeviceFuncTests
. In caso contrario, la definizione della suite si trova incom.android.tradefed.FuncTests
.Se ha senso inserire i metodi di test in una delle sottoclassi della suite esistenti, preferisci aggiungerli lì. In caso contrario, aggiungi un nuovo corso alla suite applicabile.
In entrambi i casi, aggiungendolo alla suite, il test viene eseguito automaticamente nella pipeline CI con gli altri test funzionali.
Esegui test funzionali
Per eseguire un test funzionale da Eclipse:
- 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. - Crea 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
. - Specifica i seguenti argomenti della riga di comando nella scheda Argomenti:
host --class <full path of test class to run>
- Fai clic su Esegui.
Per eseguire test funzionali al di fuori di Eclipse.
- Costruisci una federazione commerciale.
- Collega un dispositivo Android all'host.
- Esegui
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Se vuoi, scegli il dispositivo aggiungendo
--serial <serial no>
come appare nell'output diadb devices
.
Eseguire test pre-invio di TF in base alle modifiche locali
Se vuoi eseguire l'operazione in modo simile al pre-invio di TF, utilizza questo:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
In questo modo verranno attivati tutti i test di preinvio del modello di formazione sul modello di formazione creato localmente per aiutarti a verificare che la modifica non stia interrompendo alcun test.
I test pre-invio TF sono un soprainsieme dei test delle unità precedenti, ma sono più lenti da eseguire. Pertanto, ti consigliamo di eseguire i test di unità durante lo sviluppo per una convalida più rapida ed eseguire i pre-submit prima di caricare il CL.