Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

단순 빌드 구성

각 새 테스트 모듈에는 모듈 메타데이터, 컴파일 타임 종속성 및 패키징을 포함된 빌드 시스템을 안내하는 구성 파일이 있어야 합니다. Android는 이제 간단한 테스트 설정을 위해 Soong 빌드 시스템을 사용합니다.

Soong은 구축할 모듈에 대한 간단한 선언적 설명인 JSON과 유사한 Blueprint 또는 .bp 파일을 사용합니다. 이 형식은 이전 릴리스에서 사용된 Make 기반 시스템을 대체합니다. 자세한 내용은 연속 통합 대시보드Soong 참조 파일을 참조하세요.

맞춤 테스트를 사용하거나 Android 호환성 테스트 모음(CTS)을 사용하려면 복잡한 테스트 구성을 따르세요.

아래 항목은 예시 Blueprint 구성 파일에서 가져온 것입니다. (/platform_testing/tests/example/instrumentation/Android.bp)

편의를 위해 여기에 개요가 포함되어 있습니다.

android_test {
        name: "HelloWorldTests",
        srcs: ["src/**/*.java"],
        sdk_version: "current",
        static_libs: ["android-support-test"],
        certificate: "platform",
        test_suites: ["device-tests"],
    }
    

시작 부분의 android_test 선언은 테스트임을 나타내며 android_app을 포함하면 그 대신 빌드 패키지임을 나타냅니다.

설정

다음과 같은 설정 설명이 표시됩니다.

    name: "HelloWorldTests",
    

name 설정은 android_test 모듈 유형이 블록의 시작 부분에서 지정된 경우 필수입니다. 모듈의 이름이 지정되고 결과 APK 이름은 동일하며 접미사 .apk를 사용합니다. 예를 들어 결과 apk의 이름은 HelloWorldTests.apk입니다. 또한, 모듈의 make 타겟 이름을 정의하여 make [options] <HelloWorldTests>를 사용하여 테스트 모듈 및 모든 종속 항목을 빌드할 수 있습니다.

    static_libs: ["android-support-test"],
    

static_libs 설정은 이름이 지정된 모듈의 콘텐츠를 현재 모듈의 apk에 통합하도록 빌드 시스템에 지시합니다. 즉, 명명된 각 모듈은 .jar 파일을 생성하며 컴파일 타임에 classpath 참조를 확인하고 결과 apk에 통합됩니다.

이 예에서 테스트에 일반적으로 도움이 될 수 있는 사항은 다음과 같습니다.

android-support-test는 JUnit4 테스팅 프레임워크를 지원하는 새로운 테스트 실행자 AndroidJUnitRunner를 포함하는 Android Test Support Library를 위해 미리 빌드되어 있으며, 현재 지원되지 않는 내장 InstrumentationTestRunner를 대체합니다. 자세한 내용은 Android에서 앱 테스트를 참조하세요.

새 계측 모듈을 빌드하는 경우 먼저 테스트 실행자로 android-support-test 라이브러리를 사용해야 합니다. 플랫폼 소스 트리는 ub-uiautomator, mockito-target, easymock 등의 다른 유용한 테스트 프레임워크도 포함합니다.

    certificate: "platform",
    

certificate 설정은 빌드 시스템이 코어 플랫폼과 동일한 인증서를 사용하여 apk에 서명하도록 지시합니다. 테스트가 서명으로 보호된 권한 또는 API를 사용하는 경우 필요합니다. 플랫폼 연속 테스트에 적합하지만 CTS 테스트 모듈에는 사용하면 안 됩니다. 이 예에서는 설명하는 용도로만 인증서 설정을 사용합니다. 예의 테스트 코드는 테스트 APK가 특수 플랫폼 인증서로 서명되지 않아도 됩니다.

시스템 서버 외부에 존재하는 구성요소의 계측을 작성하는 경우 시스템 이미지에 내장되어 있으며 권한이 부여된 앱일 수도 있지만 일반적으로 앱 APK와 비슷합니다. 앱 패키지를 타겟팅해야 합니다. 자세한 내용은 섹션의 매니페스트에 대한 섹션을 참조하세요. 이 경우 애플리케이션 Makefile에 자체 certificate 설정이 있고 계측 모듈이 동일한 설정을 유지해야 합니다. 테스트 중인 앱에서 계측을 타겟팅하려면 테스트 apk와 앱 apk가 동일한 인증서로 서명되어야 하기 때문입니다.

빌드 시스템은 빌드 변형을 기반으로 기본 내장 인증서로 서명하며 일반적으로 dev-keys 라고 합니다.

    test_suites: ["device-tests"],
    

test_suites 설정을 사용하면 Trade Federation 테스트 하네스에서 테스트를 쉽게 찾을 수 있습니다. 이 테스트를 공유할 수 있도록 CTS와 같은 다른 제품군을 여기에 추가할 수 있습니다.

${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk