Truyền các tuỳ chọn và bộ lọc đến bộ và mô-đun

Trước tiên, hãy đảm bảo bạn hiểu rõ về Xử lý lựa chọn trong Tradefed.

Thiết lập bộ kiểm thử mô tả 2 lớp có trong cấu trúc bộ kiểm thử:

  • Phòng suite hạng cao nhất
  • Các mô-đun

Trong ngữ cảnh Tradefed không phải là bộ, bạn không cần phải nghĩ về điều đó; mọi lựa chọn đều chuyển đến lệnh gọi đầy đủ. Trong bối cảnh của một bộ, các mô-đun được tách biệt khỏi bộ; do đó, không phải tất cả các lựa chọn đều có sẵn ở cấp độ của chúng.

Truyền các lựa chọn đến bộ cấp cao nhất

Bộ kiểm thử cấp cao nhất hoạt động như cấu hình Tradefed tiêu chuẩn: cấu hình đầy đủ bao gồm trình chạy bộ kiểm thử nhận được tất cả các lựa chọn như cấu hình Tradefed không phải bộ kiểm thử.

Truyền các lựa chọn cho mô-đun

Theo mặc định, các mô-đun không nhận được bất kỳ tuỳ chọn nào được truyền đến lệnh. Bạn cần nhắm đến các đối tượng này một cách rõ ràng để nhận được các lựa chọn thông qua lựa chọn module-arg. Việc tách biệt các lựa chọn mô-đun này giúp bạn gỡ lỗi dễ dàng hơn.

Ví dụ:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

Cú pháp này đảm bảo rằng mô-đun được nhắm đến sẽ nhận được lựa chọn đã cho.

Có những cách khác để truyền các lựa chọn cho mô-đun, chẳng hạn như test-arg. Cách này cho phép bạn truyền các lựa chọn cho trình chạy kiểm thử của từng mô-đun dựa trên loại hoặc lớp trình chạy.

Ví dụ:

cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>

cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true

Cú pháp này không nhắm đến một mô-đun cụ thể mà nhắm đến tất cả trình chạy kiểm thử của lớp đã cho. test-arg chỉ xem xét các cách triển khai IRemoteTest làm đối tượng nhận tiềm năng của các lựa chọn.

Truyền các lựa chọn cho một lớp kiểm thử Java trong java_test_host

Nếu đang thêm một @Option vào lớp kiểm thử java của mình trong quá trình tạo mục tiêu bản dựng java_test_host, bạn sẽ cần sử dụng mục tiêu sau để chèn lựa chọn đó:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

set-option trong ngữ cảnh này là lựa chọn của trình chạy HostTest trong bộ kiểm thử, giúp bao bọc các lớp java của bạn để thực thi chúng.

nếu mục tiêu tệp jar của bạn cho các lựa chọn chứa nhiều lớp kiểm thử, theo mặc định, tất cả các lớp đó đều được dự kiến sẽ có @option được chỉ định hoặc sử dụng cú pháp sau để nhắm đến một lớp duy nhất:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

Truyền bộ lọc đến bộ

Để lọc một số kiểm thử khỏi một bộ kiểm thử, chúng ta sử dụng --include-filter--exclude-filter để lần lượt buộc bao gồm hoặc loại trừ một kiểm thử hoặc mô-đun cụ thể. Tiêu chí loại trừ được ưu tiên.

Các mã này sử dụng định dạng sau: [abi] <module-name> [test name]

Ví dụ:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes