단일 모놀리식 XML 구성을 생성하여 테스트를 정의하는 것이 실용적이지 않을 때도 있습니다. 설정의 일부를 재사용하여 유사한 테스트를 실행하고 싶은 경우에는 두 개의 대량 XML 파일을 복사하여 유지할 수 밖에 없습니다.
바로 여기서 Tradedfed XML 구성의 template
및 include
태그가 유용성을 발휘합니다. 이러한 태그를 사용하면 일부 XML 구성에 자리표시자를 설정하여 다른 XML 구성의 일부를 추가할 수 있습니다.
template 정의의 예
<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>
template은 템플릿을 참조하기 위한 name
및 선택사항 default
필드를 포함하는 자리표시자입니다. 기본 필드는 사용해야 하는 기본 대체 XML을 정의합니다.
구성의 template을 대체하기 위해서는 다음과 같은 명령어 매개변수를 명령줄에 추가해야 합니다.
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
예:
<template-include name="preparers" default="empty" />
이 경우의 empty
참조는 아무 것도 포함되지 않은 empty.xml
구성을 참조합니다. 이를 아무것도 교체하는 데 대한 참조로 사용합니다.
XML 구성의 경로는 Tradefed JAR 리소스 내의 res/config
폴더에 대해 절대적이거나 상대적일 수 있습니다. 위치는 다음과 같을 수 있습니다.
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
include 정의의 예
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
include는 template보다 단순합니다 template에는 명령줄 인수가 필요없으며 name
태그에서 참조된 XML을 직접적으로 확장하기 때문입니다. template과 마찬가지로 구성에 대한 경로는 절대적이거나 상대적일 수 있습니다. 하지만 includes
의 경우 Tradefed에서 훨씬 휴대성이 높은 만큼 상대 경로만 사용하는 것이 좋습니다.
Tradefed를 다른 시스템으로 이동한 경우에는 절대 경로가 유효하지 않습니다.
구성 오류
구성 오류가 발생한 경우(예: 대체 XML을 찾을 수 없는 경우) Tradefed는 ConfigurationException
ConfigurationException, 그리고 누락되었거나 잘못 구성된 요소에 대한 설명을 표시합니다.