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 để 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 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 xây dựng Soong để đơn giản hoá cấu hình kiểm thử.

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 về các mô-đun cần xây dựng. Đị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ích hợp liên tục để biết đầy đủ thông tin.

Để đáp ứng việc kiểm thử tuỳ chỉnh hoặc sử dụng Bộ kiểm tra tính tương thích (CTS) với Android, hãy làm theo Cấu hình kiểm thử phức tạp thay thế.

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

Ảnh chụp nhanh được đưa vào đâ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 ý rằng khai báo android_test ở đầu cho biết đây là một quy 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

Các chế độ cài đặt sau đây cần được giải thích:

    name: "HelloWorldTests",

Bạn phải đặt chế độ cài đặt name khi chỉ định loại mô-đun android_test (ở đầu khối). Chế độ cài đặt này sẽ đặ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 kiểm thử kết quả được đặt tên là HelloWorldTests.apk. Ngoài ra, chế độ cài đặt 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 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 đó 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 APK kết quả.

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. Đọ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 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ý APK bằng cùng một chứng chỉ với nền tảng cốt lõi. Bạn cần thực hiện việc này nếu quy trình kiểm thử của bạn sử dụng quyền hoặc API được bảo vệ bằng chữ ký. Xin lưu ý rằng chế độ cài đặt này phù hợp với việc 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 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 của mình nằm ngoài máy chủ hệ thống, tức là công cụ này đượ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 công cụ này đượ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 ứng dụng của bạn có thể có chế độ cài đặt certificate riêng và mô-đun đo lường của bạn sẽ giữ lại cùng một chế độ cài đặt. Điều này là do để nhắm đến công cụ đo lường của bạn trên ứng dụng đang kiểm thử, APK kiểm thử và 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 có chế độ cài đặt này: hệ thống xây dựng sẽ chỉ ký APK 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 quy trình kiểm thử. Bạn có thể thêm các bộ 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 tuỳ chọn

Các chế độ cài đặt tuỳ chọn sau đây cần đượ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 có tạo cấu hình kiểm thử tự động 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 rõ ràng thuộc tính này thành true.

    require_root: true

Chế độ 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 kiểm thử được tạo tự động. Điều này đảm bảo quy trình 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 xây 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ử, quy trình 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.