Mỗi mô-đun kiểm thử mới phải có một tệp cấu hình để hướng dẫn hệ thống tạo bản dựng bằng siêu dữ liệu mô-đun, các phần phụ thuộc trong thời gian biên dịch và hướng dẫn đóng gói. Android hiện sử dụng hệ thống bản dựng Soong để có cấu hình kiểm thử đơn giản hơn.
Soong sử dụng các tệp Blueprint hoặc .bp
. Đây là những nội dung mô tả khai báo đơn giản giống như JSON về các mô-đun cần tạo. Định dạng này thay thế hệ thống dựa trên Make được dùng trong các bản phát hành trước. Hãy xem các tệp tham chiếu Soong trên Trang tổng quan về tính năng Tích hợp liên tục để biết đầy đủ thông tin chi tiết.
Để đáp ứng nhu cầu kiểm thử tuỳ chỉnh hoặc sử dụng Bộ kiểm tra tính tương thích (CTS) của Android, hãy làm theo hướng dẫn trong phần Cấu hình kiểm thử phức tạp.
Ví dụ
Các mục bên dưới có trong tệp cấu hình Blueprint ví dụ này: /platform_testing/tests/example/instrumentation/Android.bp
Để thuận tiện, chúng tôi có chụp nhanh một phần nội dung:
android_test {
name: "HelloWorldTests",
srcs: ["src/**/*.java"],
sdk_version: "current",
static_libs: ["androidx.test.runner"],
certificate: "platform",
test_suites: ["device-tests"],
}
Lưu ý rằng khai báo android_test
ở đầu cho biết đây là một kiểm thử.
Ngược lại, việc thêm android_app
sẽ cho biết đây là một gói bản dựng.
Cài đặt
Sau đây là phần giải thích về các chế độ cài đặt:
name: "HelloWorldTests",
Bạn phải đặt chế độ cài đặt name
khi chỉ định loại mô-đun android_test
(ở đầu khối). Thao tác này sẽ đặt tên cho mô-đun của bạn và APK kết quả sẽ có cùng tên và có hậu tố .apk
, ví dụ: trong trường hợp này, APK kiểm thử kết quả sẽ có tên là HelloWorldTests.apk
. Ngoài ra, thao tác này cũng xác định tên mục tiêu tạo cho mô-đun của bạn, nhờ đó bạn có thể dùng make [options]
<HelloWorldTests>
để tạo mô-đun kiểm thử và mọi phần phụ thuộc của mô-đun đó.
static_libs: ["androidx.test.runner"],
Chế độ cài đặt static_libs
hướng dẫn hệ thống xây dựng kết hợp nội dung của các mô-đun được đặt tên vào apk kết quả của mô-đun hiện tại. Điều này có nghĩa là mỗi mô-đun được đặt tên dự kiến sẽ tạo ra một tệp .jar
và nội dung của tệp này sẽ được dùng để phân giải các tham chiếu đường dẫn lớp trong thời gian biên dịch, cũng như được kết hợp vào tệp apk kết quả.
Mô-đun androidx.test.runner
là mô-đun được tạo sẵn cho Thư viện Trình chạy kiểm thử AndroidX, bao gồm cả trình chạy kiểm thử AndroidJUnitRunner
.
AndroidJUnitRunner
hỗ trợ khung kiểm thử JUnit4 và thay thế InstrumentationTestRunner
trong Android 10. Đọc thêm về việc kiểm thử ứng dụng Android tại Kiểm thử ứng dụng trên Android.
Nếu đang tạo một mô-đun đo lường mới, bạn nên luôn bắt đầu bằng thư viện androidx.test.runner
làm trình chạy kiểm thử. Cây nguồn nền tảng cũng bao gồm các khung kiểm thử hữu ích khác, chẳng hạn như ub-uiautomator
, mockito-target
, easymock
và nhiều khung khác.
certificate: "platform",
Chế độ cài đặt certificate
hướng dẫn hệ thống bản dựng ký apk bằng cùng một chứng chỉ với nền tảng cốt lõi. Điều này là cần thiết nếu kiểm thử của bạn sử dụng quyền hoặc API được bảo vệ bằng chữ ký. Lưu ý rằng điều này phù hợp với hoạt động kiểm thử liên tục trên nền tảng, nhưng không được dùng trong các mô-đun kiểm thử CTS. Xin lưu ý rằng ví dụ này chỉ sử dụng chế độ cài đặt chứng chỉ này cho mục đích minh hoạ: mã kiểm thử của ví dụ không thực sự cần tệp apk kiểm thử được ký bằng chứng chỉ nền tảng đặc biệt.
Nếu bạn đang viết một quy trình đo lường cho thành phần nằm bên ngoài máy chủ hệ thống, tức là thành phần đó được đóng gói ít nhiều giống như một apk ứng dụng thông thường, ngoại trừ việc thành phần đó được tích hợp vào hình ảnh hệ thống và có thể là một ứng dụng đặc quyền, thì có khả năng quy trình đo lường của bạn sẽ nhắm đến gói ứng dụng (xem phần bên dưới về tệp kê khai) của thành phần. Trong trường hợp này, tệp makefile của ứng dụng có thể có chế độ cài đặt certificate
riêng và mô-đun đo lường của bạn phải giữ nguyên chế độ cài đặt đó. Lý do là để nhắm đến hoạt động đo lường trên ứng dụng đang kiểm thử, apk kiểm thử và apk ứng dụng của bạn phải được ký bằng cùng một chứng chỉ.
Trong các trường hợp khác, bạn không cần phải có chế độ cài đặt này: hệ thống xây dựng sẽ chỉ cần ký bằng một chứng chỉ tích hợp mặc định, dựa trên biến thể bản dựng và thường được gọi là dev-keys
.
test_suites: ["device-tests"],
Chế độ cài đặt test_suites
giúp Trade Federation test harness dễ dàng phát hiện ra hoạt động kiểm thử. Bạn có thể thêm các bộ kiểm thử khác vào đây, chẳng hạn như CTS, để có thể chia sẻ kiểm thử này.
${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk
Cài đặt tùy chọn
Sau đây là phần giải thích về các chế độ cài đặt không bắt buộc:
test_config: "path/to/hello_world_test.xml"
Chế độ cài đặt test_config
hướng dẫn hệ thống xây dựng rằng mục tiêu kiểm thử của bạn cần một cấu hình cụ thể. Theo mặc định, AndroidTest.xml
bên cạnh Android.bp
sẽ được liên kết với cấu hình.
auto_gen_config: true
Chế độ cài đặt auto_gen_config
cho biết có tự động tạo cấu hình kiểm thử hay không. Nếu AndroidTest.xml
không tồn tại bên cạnh Android.bp
, thì bạn không cần đặt thuộc tính này thành true một cách rõ ràng.
require_root: true
Chế độ cài đặt require_root
hướng dẫn hệ thống tạo bản dựng thêm RootTargetPreparer vào cấu hình kiểm thử được tạo tự động. Điều này đảm bảo kiểm thử chạy với quyền root.
test_min_api_level: 29
Chế độ cài đặt test_min_api_level
hướng dẫn hệ thống tạo bản dựng thêm MinApiLevelModuleController vào cấu hình kiểm thử được tạo tự động. Khi Trade Federation chạy cấu hình kiểm thử, kiểm thử sẽ bị bỏ qua nếu thuộc tính thiết bị của ro.product.first_api_level
< test_min_api_level
.