플랫폼의 GoogleTest(GTest, '네이티브 테스트'라고도 함)는 일반적으로 하위 수준 HAL에 액세스하거나 다양한 시스템 서비스를 대상으로 원시 IPC를 실행합니다. 이 때문에 테스트 접근 방식은 일반적으로 테스트 중인 서비스와 밀접한 관련이 있습니다.
지속적인 테스트 인프라와 통합하려면 GTest 프레임워크를 사용하여 GTest를 빌드합니다.
예
다음은 플랫폼 소스에 있는 GTest의 예입니다.
단계 요약
GTest 모듈 설정 예를 따릅니다.
GTest 종속 항목을 자동으로 포함하려면 테스트 모듈 구성에서
BUILD_NATIVE_TEST
빌드 규칙을 사용합니다.증분 빌드에는
mmm
을 사용하고 전체 빌드에는mma
를 사용하여 테스트 모듈을 빌드합니다.make hwui_unit_tests -j
Atest를 사용하여 로컬에서 테스트를 실행합니다.
atest hwui_unit_tests
GTest에 인수를 추가할 수도 있습니다. 다음은 특히 유용한 인수입니다.
native-test-flag
는 GTest 셸 명령어에 전달할 추가 플래그 값을 지정합니다.native-test-timeout
은 테스트 시간 제한 값을 마이크로초 단위로 지정합니다.다음 코드 예에는 이러한 두 인수가 모두 사용됩니다.
atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
Trade Federation 테스트 하네스를 사용하여 테스트를 실행합니다.
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
수동으로 설치 및 실행합니다.
생성된 테스트 바이너리를 기기로 푸시합니다.
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
GTest를 실행하고, 기기에서 테스트 바이너리를 호출하여 테스트를 실행합니다.
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
테스트 실행 맞춤설정에 관한 자세한 내용을 확인하려면
--help
매개변수를 테스트 바이너리에 추가하세요. 매개변수에 관한 자세한 내용은 GTest 고급 가이드를 참고하세요.