Việc tạo một cấu hình XML nguyên khối để xác định một quy trình kiểm thử không phải lúc nào cũng thiết thực. Nếu muốn sử dụng lại một phần của chế độ thiết lập để chạy các kiểm thử tương tự, bạn sẽ buộc phải sao chép và duy trì hai tệp XML lớn.
Đây là nơi các thẻ template
và include
trong định nghĩa Cấu hình XML Tradefed trở nên hữu ích. Chúng cho phép bạn đặt phần giữ chỗ trong một số cấu hình XML để thêm một phần của cấu hình XML khác.
Ví dụ về định nghĩa cho mẫu
<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>
Mẫu là phần giữ chỗ có name
để tham chiếu và trường default
(không bắt buộc). Trường mặc định xác định XML thay thế mặc định cần được dùng.
Để thay thế một mẫu cho một cấu hình nhất định, bạn cần thêm tham số lệnh sau vào dòng lệnh:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Ví dụ:
<template-include name="preparers" default="empty" />
Trong trường hợp này, tham chiếu empty
đề cập đến cấu hình empty.xml
không chứa nội dung nào; chúng ta dùng cấu hình này làm tham chiếu để thay thế bằng nội dung trống.
Đường dẫn của cấu hình XML có thể là đường dẫn tuyệt đối hoặc tương đối so với thư mục res/config
bên trong tài nguyên JAR của Tradefed. Sau đây là một số địa điểm của họ:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Ví dụ về định nghĩa của các thành phần
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Includes đơn giản hơn Templates vì không yêu cầu đối số dòng lệnh; chúng trực tiếp mở rộng XML được tham chiếu trong thẻ name
. Tương tự như mẫu, đường dẫn đến cấu hình có thể là đường dẫn tuyệt đối hoặc tương đối. Tuy nhiên, đối với includes
, bạn chỉ nên sử dụng đường dẫn tương đối vì chúng dễ di chuyển hơn trong Tradefed.
Đường dẫn tuyệt đối sẽ không hợp lệ nếu Tradefed được chuyển sang một máy khác.
Cấu hình sai
Trong trường hợp định cấu hình sai, chẳng hạn như khi không tìm thấy XML thay thế, Tradefed sẽ gửi một ConfigurationException
kèm theo nội dung mô tả về những gì có vẻ bị thiếu hoặc định cấu hình sai.