In questa sezione viene spiegato 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 delle unità
- Esecuzione dei 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 test di convalida di pre-invio di TF
Aggiungere test delle unità
In Android Open Source Project (AOSP), aggiungi la classe di test delle unità in: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
IMPORTANTE: se aggiungi le nuove classi di test delle unità in queste posizioni, verranno eseguite automaticamente in pre-invio senza configurazione aggiuntiva.
Eseguire test delle unità
Tutti i test delle unità e i test funzionali di AOSP per Trade Federation si trovano in
the
tools/tradefederation/core/tests
progetto.
In Eclipse, per eseguire un singolo test delle 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 delle 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 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 dell'infrastruttura di test, incluse alcune condizioni di errore. Verrà stampato un output dettagliato nella console, inclusi gli stack trace.
Il riepilogo finale dei risultati indicherà se si è verificato un errore.
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 siano 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 i metodi di test hanno senso in una delle sottoclassi della suite esistenti, preferisci aggiungerli lì. In caso contrario, non esitare ad aggiungere una nuova classe alla suite applicabile.
In entrambi i casi, se lo aggiungi alla suite, il test viene eseguito automaticamente nella pipeline CI con gli altri test funzionali.
Eseguire test funzionali
Per eseguire un test funzionale da Eclipse:
- Assicurati che un dispositivo sia connesso all'host e che
adbe, se necessario,fastbootsiano nel PATH di Eclipse. Il modo più semplice per farlo è avviare Eclipse da una shell configurata con il PATH corretto. - Crea un'applicazione Java. Esegui la configurazione tramite Esegui > Esegui configurazioni.
- Imposta il progetto su
tradefed-testse la classe principale sucom.android.tradefed.command.CommandRunner. - Esegui
m tradefed-all. - Fornisci 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.
- Compila Trade Federation.
- Collega un dispositivo Android all'host.
- Esegui
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh - (Facoltativo) Scegli il dispositivo aggiungendo
--serial <serial no>come appare nell'output diadb devices.
Eseguire i test di pre-invio di TF sulle modifiche locali
Se vuoi eseguire i test in modo simile a quelli di pre-invio di TF, utilizza quanto segue:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Verranno attivati tutti i test di pre-invio di TF sul TF compilato localmente per aiutarti a verificare che la modifica non interrompa alcun test.
I test di pre-invio di TF sono un superset dei test delle unità sopra indicati, 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 test di pre-invio prima di caricare il CL.