I preparatori dell'obiettivo vengono richiamati prima dei test nel livello di test in cui sono definiti. Ciò consente la configurazione di qualsiasi dispositivo affinché i test vengano eseguiti senza problemi.
Interfaccia di base
L'interfaccia di base è ITargetPreparer
, che consente l'esecuzione dell'implementazione di un metodo setUp
. Ti consigliamo di implementare la nostra classe astratta di base BaseTargetPreparer
, che fornisce una funzionalità di disabilitazione incorporata per disabilitare facilmente un preparatore.
Interfaccia più pulita
L'estensione naturale di setUp
è tearDown
ed è fornita da un'interfaccia diversa, ITargetCleaner
. Ciò fornisce l'interfaccia tearDown
che consente di ripulire tutto ciò che è stato fatto in setUp
dopo l'esecuzione del test.
La classe BaseTargetPreparer
estende anche ITargetCleaner
.
Raccomandazioni
Consigliamo di limitare ogni preparatore a una singola funzione principale, ad esempio l'installazione di un APK o l'esecuzione di un comando. Ciò consente un riutilizzo più semplice dei preparatori.
Controlla anche l'elenco dei preparatori disponibili prima di aggiungerne uno nuovo per evitare duplicazioni di lavoro. I preparatori sono disponibili in tools/tradefederation/core/src/com/android/tradefed/targetprep/
.
Configurazione XML
Il tag oggetto è target_preparer
, ad esempio:
<target_preparer class="com.android.tradefed.targetprep.InstallApkSetup">
<option name="install-arg" value="-d"/>
</target_preparer>
Fare riferimento anche a Configurare le suite per il contesto.
Configurazione di primo livello
Se specificato in una configurazione di livello superiore, il preparatore viene eseguito solo una volta per ciascun dispositivo. Un esempio è cts-common.xml
, che è una configurazione di primo livello per i test CTS (Android Compatibility Test Suite).
Configurazione a livello di modulo
Se specificato a livello di modulo, il preparatore viene sempre eseguito prima di quel modulo. Un esempio è backup/AndroidTest.xml
, che definisce il modo in cui Tradefed esegue il modulo CTS backup
.
Tieni presente che mentre il preparatore viene eseguito prima del modulo, viene eseguito dopo qualsiasi controllo dello stato del sistema .