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 xây dựng bằng siêu dữ liệu mô-đun, các phần phụ thuộc tại thời điểm biên dịch và hướng dẫn đóng gói. Android hiện sử dụng hệ thống xây dựng Soong để có cấu hình kiểm thử đơn giản hơn.
Soong sử dụng tệp Blueprint hoặc .bp
. Đây là các tệp 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. 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.
Để phù hợp với quy trình 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 Cấu hình kiểm thử phức tạp.
Ví dụ
Các mục nhập bên dưới đến từ tệp cấu hình Blueprint mẫu: /platform_testing/tests/example/Instrumentation/Android.bp
Để thuận tiện, chúng tôi cung cấp một bản tổng quan nhanh tại đây:
android_test {
name: "HelloWorldTests",
srcs: ["src/**/*.java"],
sdk_version: "current",
static_libs: ["androidx.test.runner"],
certificate: "platform",
test_suites: ["device-tests"],
}
Lưu ý phần khai báo android_test
ở đầu cho biết đây là một chương trình kiểm thử.
Ngược lại, việc đưa android_app
vào sẽ cho biết đây là một gói bản dựng.
Cài đặt
Sau đây là nội dung giải thích về các chế độ cài đặt:
name: "HelloWorldTests",
Chế độ cài đặt name
là bắt buộc khi loại mô-đun android_test
được chỉ định (ở đầu khối). Tệp APK này sẽ đặt tên cho mô-đun của bạn và tệp APK thu được sẽ được đặt tên giống nhau và có hậu tố .apk
, ví dụ: trong trường hợp này, tệp APK kiểm thử thu được sẽ có tên là HelloWorldTests.apk
. Ngoài ra, lệnh 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ể sử dụng make [options]
<HelloWorldTests>
để tạo mô-đun kiểm thử và tất cả các 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 tệp 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 sẽ tạo một tệp .jar
và nội dung của mô-đun đó sẽ được dùng để phân giải các tệp tham chiếu đường dẫn lớp trong thời gian biên dịch, cũng như được đưa vào tệp APK thu được.
Mô-đun androidx.test.runner
đượ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. Hãy đọc thêm về cách kiểm thử ứng dụng Android trong bài viết Kiểm thử ứng dụng trên Android.
Nếu đang xây dựng một mô-đun đo lường mới, bạn phải luôn bắt đầu với
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 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 xây dựng ký tệp 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 quy trình kiểm thử của bạn sử dụng một API hoặc quyền được bảo vệ bằng chữ ký. Xin lưu ý rằng phương thức này phù hợp với việc kiểm thử liên tục nền tảng, nhưng không được sử 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ụ thực sự không 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 công cụ đ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 tệp 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 công cụ đ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 đó. Điều này là do để nhắm mục tiêu cho hoạt động đo lường của bạn trên ứng dụng đang được kiểm thử, tệp APK kiểm thử và tệp APK ứng dụng 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 thiết lập chế độ này: hệ thống xây dựng sẽ chỉ ký bằng 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 bạn dễ dàng phát hiện chương trình kiểm thử bằng khai thác kiểm thử Liên kết thương mại. 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ẻ quy trình kiểm thử này.
${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk
Cài đặt tùy chọn
Các chế độ cài đặt không bắt buộc sau đây được giải thích:
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, 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
đượ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 liệu 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 phải đặ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 xây dựng thêm RootTargetPrepare 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 gốc.
test_min_api_level: 29
Chế độ cài đặt test_min_api_level
hướng dẫn hệ thống xây dựng thêm
MinApiLevelModuleController vào cấu hình kiểm thử được tạo tự động. Khi Liên minh thương mại 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
.