Mẫu và bao gồm trong cấu hình XML Tradefeed

Việc tạo một cấu hình XML nguyên khối để xác định một kiểm thử không phải lúc nào cũng thực tế. Nếu muốn sử dụng lại một phần của quá trình thiết lập để chạy các chương trình kiểm thử tương tự, bạn sẽ buộc phải sao chép và duy trì hai tệp XML khổng lồ.

Đây là nơi các thẻ templateinclude trong định nghĩa Cấu hình XML của Tradefed sẽ hữu ích. Các phần tử này 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.

Định nghĩa mẫu ví dụ

<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 đến các mẫu đó và một 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 sử 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" />

Tham chiếu empty trong trường hợp này đề cập đến cấu hình empty.xml không chứa gì; chúng ta sử dụng tham chiếu này để thay thế bằng không.

Đường dẫn của cấu hình XML có thể là 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ố vị trí 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 "bao gồm"

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

Tệp bao gồm đơn giản hơn Mẫu vì không yêu cầu đối số dòng lệnh; các tệp này 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à 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 không chính xác, chẳng hạn như khi không tìm thấy tệp XML thay thế, Tradefed sẽ gửi một ConfigurationException có nội dung mô tả về nội dung có vẻ như bị thiếu hoặc được định cấu hình không chính xác.