Chuyển các tùy chọn và bộ lọc cho bộ và mô-đun, Truyền các tùy chọn và bộ lọc cho bộ và mô-đun

Trước tiên, hãy đảm bảo bạn hiểu Xử lý tùy chọn trong Tradefed.

Thiết lập bộ mô tả hai lớp tồn tại trong cấu trúc bộ:

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

Trong bối cảnh Tradefed không phù hợp, không cần phải suy nghĩ về điều đó; mọi tùy chọn đều đi đến lời gọi đầy đủ. Trong bối cảnh bộ phần mềm, các mô-đun được tách biệt khỏi bộ phần mềm; vì vậy không phải tất cả các tùy chọn đều có sẵn ở cấp độ của họ.

Chuyển các tùy chọn tới bộ cấp cao nhất

Bộ 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ộ nhận được tất cả các tùy chọn giống như cấu hình Tradefed không phải bộ.

Truyền tùy chọn cho các mô-đun

Các mô-đun theo mặc định không nhận được bất kỳ tùy chọn nào được truyền cho lệnh. Chúng cần được nhắm mục tiêu rõ ràng để nhận các tùy chọn thông qua tùy chọn module-arg . Sự cô lập của các tùy chọn mô-đun này giúp việc 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 tùy chọn đã cho.

Có nhiều cách bổ sung để chuyển các tùy chọn cho các mô-đun, chẳng hạn như test-arg , cho phép bạn chuyển các tùy chọn cho trình chạy thử của từng mô-đun dựa trên loại hoặc lớp của 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 vào một mô-đun cụ thể mà là tất cả các trình chạy thử nghiệm của lớp nhất định. test-arg chỉ coi việc triển khai IRemoteTest là nơi tiếp nhận các tùy chọn tiềm năng.

Chuyển các tùy chọn cho lớp kiểm tra Java trong java_test_host

Nếu bạn đang thêm @Option vào lớp kiểm tra java của mình như một phần của mục tiêu xây dựng java_test_host, bạn sẽ cần sử dụng cách sau để đưa tùy chọn đó vào:

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

set-option trong ngữ cảnh này là tùy chọn của trình chạy HostTest từ khai thác kiểm tra 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 tùy chọn chứa nhiều lớp kiểm tra, theo mặc định, tất cả chúng đều phải có @option được chỉ định hoặc sử dụng cú pháp sau để nhắm mục tiêu một lớp duy nhất:

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

Chuyển bộ lọc vào bộ phần mềm

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

Họ sử dụng định dạng này: [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
,

Trước tiên, hãy đảm bảo bạn hiểu Xử lý tùy chọn trong Tradefed.

Thiết lập bộ mô tả hai lớp tồn tại trong cấu trúc bộ:

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

Trong bối cảnh Tradefed không phù hợp, không cần phải suy nghĩ về điều đó; mọi tùy chọn đều đi đến lời gọi đầy đủ. Trong bối cảnh bộ phần mềm, các mô-đun được tách biệt khỏi bộ phần mềm; vì vậy không phải tất cả các tùy chọn đều có sẵn ở cấp độ của họ.

Chuyển các tùy chọn tới bộ cấp cao nhất

Bộ 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ộ nhận được tất cả các tùy chọn giống như cấu hình Tradefed không phải bộ.

Truyền tùy chọn cho các mô-đun

Các mô-đun theo mặc định không nhận được bất kỳ tùy chọn nào được truyền cho lệnh. Chúng cần được nhắm mục tiêu rõ ràng để nhận các tùy chọn thông qua tùy chọn module-arg . Sự cô lập của các tùy chọn mô-đun này giúp việc 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 tùy chọn đã cho.

Có nhiều cách bổ sung để chuyển các tùy chọn cho các mô-đun, chẳng hạn như test-arg , cho phép bạn chuyển các tùy chọn cho trình chạy thử của từng mô-đun dựa trên loại hoặc lớp của 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 vào một mô-đun cụ thể mà là tất cả các trình chạy thử nghiệm của lớp nhất định. test-arg chỉ coi việc triển khai IRemoteTest là nơi tiếp nhận các tùy chọn tiềm năng.

Chuyển các tùy chọn cho lớp kiểm tra Java trong java_test_host

Nếu bạn đang thêm @Option vào lớp kiểm tra java của mình như một phần của mục tiêu xây dựng java_test_host, bạn sẽ cần sử dụng cách sau để đưa tùy chọn đó vào:

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

set-option trong ngữ cảnh này là tùy chọn của trình chạy HostTest từ khai thác kiểm tra 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 tùy chọn chứa nhiều lớp kiểm tra, theo mặc định, tất cả chúng đều phải có @option được chỉ định hoặc sử dụng cú pháp sau để nhắm mục tiêu một lớp duy nhất:

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

Chuyển bộ lọc vào bộ phần mềm

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

Họ sử dụng định dạng này: [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