Mỗi mô-đun kiểm thử mới phải có một tệp cấu hình để chỉ dẫn hệ thống xây dựng với siêu dữ liệu của mô-đun, phần phụ thuộc thời gian 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 để đơn giản hoá cấu hình thử nghiệm.
Soong sử dụng tệp Blueprint hoặc .bp
, có dạng khai báo đơn giản giống như JSON
phần mô tả của các mô-đun cần xây dựng. Định dạng này thay thế hệ thống theo Tạo
được dùng trong các bản phát hành trước. Xem 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 toàn bộ thông tin chi tiết.
Để phù hợp với thử nghiệm tuỳ chỉnh, hoặc sử dụng Bộ kiểm tra tính tương thích (CTS) Android, theo dõi Cấu hình kiểm thử phức tạp thay thế.
Ví dụ
Các mục nhập bên dưới được lấy từ tệp cấu hình Blueprint mẫu: /platform_testing/tests/example/Instrumentation/Android.bp
Để thuận tiện cho bạn, tôi xin cung cấp thông tin tổng quan nhanh:
android_test {
name: "HelloWorldTests",
srcs: ["src/**/*.java"],
sdk_version: "current",
static_libs: ["androidx.test.runner"],
certificate: "platform",
test_suites: ["device-tests"],
}
Hãy lưu ý rằng phần khai báo android_test
ở đầu cho biết đây là một chương trình kiểm thử.
Việc thêm android_app
sẽ cho thấy đây là một bản dựng
.
Cài đặt
Các chế độ cài đặt sau đây cung cấp nội dung giải thích:
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 tên cho mô-đun và kết quả
Tệp APK sẽ được đặt tên giống nhau và có hậu tố .apk
, ví dụ: trong trường hợp này,
APK kiểm thử thu được có tên là HelloWorldTests.apk
. Ngoài ra, việc này cũng
xác định tên mục tiêu make 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ử cũng như tất 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 nó sẽ là
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 tích hợp vào APK thu được.
Mô-đun androidx.test.runner
được tạo sẵn cho AndroidX Test Runner
Thư viện, bao gồm cả trình chạy kiểm thử AndroidJUnitRunner
.
AndroidJUnitRunner
hỗ trợ khung thử nghiệm JUnit4 và thay thế
InstrumentationTestRunner
trong Android 10. Đọc thêm
về kiểm thử ứng dụng Android tại 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 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 như ub-uiautomator
,
mockito-target
, easymock
và tên khác.
certificate: "platform",
Chế độ cài đặt certificate
hướng dẫn hệ thống xây dựng ký gói ứng dụng bằng cùng một
làm nền tảng cốt lõi. Điều này là cần thiết nếu thử nghiệm của bạn sử dụng chữ ký
quyền hoặc API được bảo vệ. Xin lưu ý rằng định dạng này phù hợp với nền tảng liên tục
thử nghiệm, nhưng không nên sử dụng trong các mô-đun kiểm thử CTS. Lưu ý rằng ví dụ này
chỉ sử dụng cài đặt chứng chỉ này nhằm mục đích minh hoạ: mã kiểm thử
của ví dụ này không thực sự cần APK thử nghiệm phải được ký bằng
chứng chỉ nền tảng đặc biệt.
Nếu bạn đang viết một thiết bị đo lường cho thành phần nằm bên ngoài
máy chủ hệ thống, tức là được đóng gói ít nhiều giống như APK ứng dụng thông thường,
ngoại trừ việc ứng dụng đó được tích hợp vào hình ảnh hệ thống và có thể là một ứng dụng có đặc quyền, khả năng
là khả năng đo lường của bạn sẽ nhắm mục tiêu gói ứng dụng (xem bên dưới
về tệp kê khai) của thành phần. Trong trường hợp này, ứng dụng của bạn
makefile có thể có chế độ cài đặt certificate
riêng và khả năng đo lường
mô-đun nên giữ nguyên chế độ cài đặt. Điều này là để nhắm mục tiêu
khả năng đo lường trên ứng dụng đang được kiểm thử, APK kiểm thử và apk ứng dụng của bạn phải được ký
có cùng một chứng chỉ.
Trong các trường hợp khác, bạn hoàn toàn không cần có chế độ cài đặt này: hệ thống xây dựng
sẽ chỉ ký ứng dụng bằng một chứng chỉ tích hợp mặc định, dựa trên 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 thương hiệu dễ dàng phát hiện bài kiểm thử
Khai thác kiểm thử liên kết. Các bộ ứng dụng khác có thể được thêm vào đây, chẳng hạn như CTS để
thử nghiệm có thể được chia sẻ.
${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à mục tiêu kiểm thử của bạn cần có
cấu hình cụ thể. Theo mặc định, AndroidTest.xml
bên cạnh Android.bp
là
đượ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ạo cấu hình kiểm thử hay không
tự động. Nếu AndroidTest.xml
không tồn tại bên cạnh Android.bp
, thì phương thức này
không cần đặt 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 RootTargetPreparer
cho cấu hình kiểm thử được tạo tự động. Điều này đảm bảo chương trình kiểm thử sẽ chạy với thư mục gốc
quyền truy cập.
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
MinApi LevelModuleController vào cấu hình thử nghiệm được tạo tự động. Khi giao dịch
Liên kết 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ị
trong số ro.product.first_api_level
< test_min_api_level
.