Các mẫu và bao gồm trong cấu hình Tradefed XML

Việc tạo một cấu hình XML nguyên khối để xác định một bài kiểm tra 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 thiết lập để chạy các thử nghiệm 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à lúc template và thẻ include trong định nghĩa Cấu hình XML được trao đổi 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ấu hình XML khác.

Định nghĩa mẫu 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 chúng và trường default tùy chọn. Trường mặc định xác định XML thay thế mặc định sẽ được sử dụng.

Để thay thế mẫu cho một cấu hình nhất định, tham số lệnh sau cần được thêm 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 tôi sử dụng nó làm tài liệu tham khảo để thay thế bằng không có gì .

Đường dẫn của các cấu hình XML có thể là tuyệt đối hoặc tương đối với thư mục res/config bên trong tài nguyên JAR của Tradefed. Dưới đây là một số địa điểm của họ:

  • công cụ/liên đoàn thương mại/core/res/config
  • công cụ/liên đoàn thương mại/core/tests/res/config
  • công cụ/tradedeferation/đóng góp/res/config

Ví dụ về định nghĩ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>

Bao gồm đơn giản hơn Mẫu vì chúng không yêu cầu đối số dòng lệnh; họ 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, để includes , chúng tôi khuyên bạn chỉ nên sử dụng các đườ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áy khác.

Cấu hình sai

Trong trường hợp cấu hình sai, chẳng hạn như khi không tìm thấy XML thay thế, Tradefed sẽ đưa ra Ngoại ConfigurationException kèm theo mô tả về những gì dường như bị thiếu hoặc bị định cấu hình sai.