Cấu hình bản dựng đơn giản

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, 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"],
}

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, 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 để 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 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. Hãy đọc thêm về cách 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ý 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 cần thiết nếu kiểm thử của bạn sử dụng một quyền hoặc API được bảo vệ bằng chữ ký. 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 đến 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. Lý do là để nhắm mục tiêu đo lường trên ứng dụng đang kiểm thử, bạn phải ký tệp APK kiểm thử và tệp APK ứng dụng 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 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 Merchant Center dễ dàng phát hiện bài kiểm thử Khai thác kiểm thử liên kết. 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 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 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 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 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.