Trước tiên, hãy đảm bảo bạn hiểu rõ về tính năng Xử lý tuỳ chọn trong Tradefed.
Thiết lập bộ ứng dụng mô tả hai lớp tồn tại trong cấu trúc bộ ứng dụng:
- Bộ công cụ cấp cao nhất
- Các mô-đun
Trong ngữ cảnh Tradefed không phải bộ, bạn không cần phải suy nghĩ về điều này; mọi tuỳ chọn đều chuyển đến lệnh gọi đầy đủ. Trong ngữ cảnh của bộ, các mô-đun được tách biệt với bộ; do đó, không phải tuỳ chọn nào cũng có ở cấp độ của chúng.
Truyền các tuỳ chọn đến bộ cấp cao nhất
Bộ công cụ 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 cả trình chạy bộ công cụ sẽ nhận được tất cả các tuỳ chọn như cấu hình Tradefed không phải bộ công cụ.
Truyền các tuỳ chọn đến 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 mục tiêu rõ ràng để nhận các tuỳ chọn thông qua tuỳ chọn module-arg
. Việc tách biệt các tuỳ chọn mô-đun này giúp 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 mục tiêu sẽ nhận được tuỳ chọn đã cho.
Có thêm một số cách để truyền tuỳ chọn đến các mô-đun như test-arg
, cho phép bạn truyền tuỳ chọn đến trình chạy kiểm thử của mỗi 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à là tất cả trình chạy kiểm thử của lớp nhất định. test-arg
chỉ xem xét các phương thức triển khai của IRemoteTest làm trình nhận tiềm năng của các tuỳ chọn.
Truyền các tuỳ chọn đến một lớp kiểm thử Java trong java_test_host
Nếu đang thêm @Option
vào lớp kiểm thử java trong mục tiêu bản dựng java_test_host, bạn sẽ cần sử dụng nội dung sau để chèn tuỳ 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à tuỳ chọn của trình chạy HostTest từ bộ kiểm thử gói các lớp java của bạn để thực thi các lớp đó.
nếu mục tiêu tệp jar của bạn cho các tuỳ chọn chứa nhiều lớp kiểm thử, thì theo mặc định, tất cả các lớp đó đều phải 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ộ công cụ
Để lọc một số chương trình kiểm thử khỏi một bộ kiểm thử, chúng ta sử dụng --include-filter
và --exclude-filter
để buộc đưa vào hoặc loại trừ một chương trình kiểm thử hoặc mô-đun cụ thể. Tiêu chí loại trừ được ưu tiên.
Các tệp 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