Cada módulo do pacote (definido por AndroidTest.xml
) pode conter um objeto
module_controller
especial que pode alterar o comportamento do módulo:
Define 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 do módulo será usado para determinar se o módulo precisa ser executado
ou não, com base na
implementação
public abstract RunStrategy shouldRun(IInvocationContext context);
.
Se é necessário coletar alguns registros ou não em falhas
Ao executar um pacote completo, é possível solicitar no nível do pacote a coleção de alguns registros de falhas (captura de tela, relatório de bugs, logcat). No entanto, para alguns módulos, um registro específico solicitado pode não ter nenhum valor e simplesmente 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 a omissão de um módulo com base na condição dele precisa ser analisada pelo proprietário do módulo para receber a aprovação de que pular um módulo é o comportamento adequado.