Criar uma configuração XML monolítica para definir um teste nem sempre é uma prática práticos. Se você quiser reutilizar parte da configuração para executar testes semelhantes, seria forçada a copiar e manter dois arquivos XML enormes.
É aqui que as tags template
e include
aparecem na configuração XML do Tradefed.
definição são úteis. Eles permitem definir marcadores de posição em alguns arquivos XML.
para adicionar parte de outra configuração XML.
Exemplo de definição de modelos
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<template-include name="preparers" default="empty" />
<template-include name="test" default="empty" />
<template-include name="reporters" default="empty" />
</configuration>
Os modelos são marcadores de posição com um name
para referência e um
default
. O campo default define o XML de substituição padrão que
deve ser usado.
Para substituir um modelo para uma determinada configuração, o comando a seguir precisa ser adicionado à linha de comando:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Exemplo:
<template-include name="preparers" default="empty" />
Nesse caso, a referência empty
se refere à configuração empty.xml
que
não contém nada; nós a usamos como referência para substituir por nada.
O caminho das configurações XML pode ser absoluto ou relativo à pasta res/config
nos recursos de JAR da Tradefed. Aqui estão alguns dos locais:
- ferramentas/tradefederação/core/res/config
- ferramentas/tradefederação/núcleo/testes/res/config
- ferramentas/negociação/contrib/res/config
Exemplo de definição de inclusões
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Isso inclui é mais simples que modelos, porque não exige argumentos de linha de comando.
ele expande diretamente o XML referenciado na tag name
. Assim como os modelos,
o caminho para a configuração pode ser absoluto ou relativo. Ainda assim, para includes
nós
recomenda o uso apenas de caminhos relativos, porque eles são mais portáteis no Tradefed.
Caminhos absolutos não são válidos se o Tradefed é movido para outra máquina.
Configuração incorreta
Em caso de configuração incorreta, como quando o XML de substituição não pode ser encontrado,
O Tradefed vai gerar uma ConfigurationException
com uma descrição do que parece
ou ausentes ou configurados incorretamente.