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

Việc tạo một cấu hình XML nguyên khối để xác định chương 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 quá trình 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 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. Chúng cho phép bạn đặt phần giữ chỗ trong một số XML để thêm một phần của 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 đế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 giá trị nào; chúng tôi dùng đoạn mã đó làm tham chiếu để thay thế bằng giá trị không có gì.

Đườ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: công cụ/thương mại
  • 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>

Bao gồm đơn giản hơn Mẫu vì không yêu cầu đối số dòng lệnh; chúng sẽ 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, chúng tôi bạn chỉ nên sử dụng các đường dẫn tương đối vì chúng có thể linh hoạt hơn trong Tradefeed. Đường dẫn tuyệt đối sẽ không hợp lệ nếu Tradefeed đượ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.