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 về Cách xử lý tuỳ chọn trong Tradefed.

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

  • Bộ kiểm thử cấp cao nhất
  • Các mô-đun

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

Chuyển các tuỳ chọn đến bộ kiểm thử cấp cao nhất

Bộ kiểm thử cấp cao nhất hoạt động giố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ộ kiểm thử nhận tất cả các tuỳ chọn như cấu hình Tradefed không thuộc bộ kiểm thử.

Chuyển các tuỳ chọn đến các mô-đun

Theo mặc định, các mô-đun không nhận bất kỳ tuỳ chọn nào được chuyển đến lệnh. Bạn cần nhắm mục tiêu rõ ràng đến các mô-đun để 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 của mô-đun 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 đảm bảo rằng mô-đun được nhắm mục tiêu sẽ nhận được tuỳ chọn đã cho.

Có nhiều cách khác để chuyển các tuỳ chọn đến các mô-đun, chẳng hạn như test-arg. Tuỳ chọn này cho phép bạn chuyển các tuỳ chọn đến 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 không nhắm mục tiêu đến một mô-đun cụ thể mà nhắm mục tiêu đến tất cả cá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 (tài liệu, mã nguồn) hoặc ITargetPreparer (tài liệu, mã nguồn) là các trình nhận tiềm năng của các tuỳ chọn.

Chuyể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 cần sử dụng cú pháp sau để chèn tuỳ chọn đó:

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

set-option trong bối cảnh này là tuỳ chọn của trình chạy HostTest từ khai thác 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 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 mục tiêu đến một lớp:

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

Chuyển bộ lọc đến bộ kiểm thử

Để lọc một số bài kiểm thử khỏi bộ kiểm thử, chúng ta sử dụng --include-filter--exclude-filter để buộc đưa vào hoặc loại trừ một bài kiểm thử hoặc mô-đun cụ thể. Tiêu chí loại trừ có mức độ ưu tiên cao hơn.

Các bộ lọc 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