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