Cada módulo de conjunto (definido por AndroidTest.xml
) pode conter um objeto module_controller
especial 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
desta forma:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
O controlador de módulo será usado para determinar se o módulo deve ser executado
ou não, com base na implementação
public abstract RunStrategy shouldRun(IInvocationContext context);
.
Se quer coletar alguns registros em caso de falhas
Ao executar um conjunto completo, é possível solicitar no nível do conjunto a coleta de alguns registros em caso de falhas (captura de tela, relatório do bug, logcat). No entanto, para alguns módulos, um determinado registro solicitado pode não ter valor e apenas desperdiçar tempo para ser coletado. Nessa situação, um módulo pode especificar explicitamente os registros de 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 precisa ser genérica, se possível, para maximizar a reutilização. E pular um módulo com base na condição dele precisa ser revisado pelo proprietário para receber a aprovação de que essa é a ação adequada.