Cada módulo de pacote (definido por AndroidTest.xml
) pode conter um
Objeto module_controller
que pode alterar algum comportamento do módulo:
Se o módulo será executado ou não com base em algumas condições
Implementando BaseModuleController
e adicionando-o ao AndroidTest.xml
da seguinte forma:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
O controlador do módulo será usado para determinar se o módulo será executado
ou não, com base
public abstract RunStrategy shouldRun(IInvocationContext context);
implementação.
Se alguns registros serão coletados ou não em caso de falhas
Ao executar um pacote completo, é possível solicitar, no nível da suíte, coleta de alguns registros em caso de falhas (captura de tela, relatório do bug, logcat). Mas por em alguns módulos, um registro específico solicitado poderá não ter valor simplesmente perdem tempo para serem coletados. Nessa situação, um módulo pode especificar em quais registros eles têm interesse:
<object type="module_controller"
class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
<option name="screenshot-on-failure" value="<true OR false>" />
<option name="bugreportz-on-failure" value="<true OR false>" />
<option name="logcat-on-failure" value="<true OR false>" />
</object>
OBSERVAÇÃO: a implementação de controladores deve ser genérica, se possível, para para maximizar a reutilização. Pular um módulo com base na condição dele deveria ser revisado pelo proprietário do módulo para obter a aprovação de que pular um módulo é o comportamento adequado para elas.