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 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 thông tin thiết lập để chạy các phép 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 Cấu hình XML được trao đổi định nghĩa sẽ giúp ích cho bạn. 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 chúng và một phần không bắt buộc Trường default. Trường mặc định xác định XML thay thế mặc định nên sử dụng.

Để thay thế một mẫu cho một cấu hình đã cho, lệnh sau tham số 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 giá trị nào; chúng tôi dùng đoạn mã đó làm tham chiếu để thay thế bằng không có gì.

Đường dẫn của các cấu hình XML có thể là đường dẫn tuyệt đối hoặc tương đối đến thư mục res/config bên trong các tài nguyên JAR của Tradefeed. 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: công cụ/thương mại/lõi/kiểm thử/res/config
  • công cụ/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 cấu hình sai, chẳng hạn như khi không tìm thấy tệp XML thay thế, Thương mại sẽ gửi ra ConfigurationException kèm theo nội dung mô tả về kết quả bị thiếu hoặc định cấu hình sai.