Trước tiên, hãy đảm bảo bạn hiểu rõ Xử lý tuỳ chọn trong Tradefeed.
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ó sẵn ở cấp độ của chúng.
Truyền các tuỳ chọn đến bộ cấp cao nhất
Bộ ứng dụng cấp cao nhất hoạt động giống như cấu hình Tradefeed tiêu chuẩn: cấu hình đầy đủ bao gồm cả trình chạy bộ ứng dụng nhận được tất cả các tuỳ chọn như cấu hình Tradefeed không phải của bộ phần mềm.
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 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 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 như một phần của mục tiêu bản dựng java_test_host, bạn sẽ cần sử dụng đoạn mã 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 này đề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ài liệu 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