플랫폼용 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
은 테스트 시간 초과 값을 마이크로초 단위로 지정합니다.
다음 예제 코드에서는 이러한 인수를 모두 사용합니다.
<pre class="devsite-terminal devsite-click-to-copy">
atest <var>test-name</var> -- --module-arg <var>test-name</var>:native-test-flag:"\"<var>argument1</var> <var>argument2</var>\"" \
--module-arg <var>test-name</var>:native-test-timeout:60000
</pre>
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 고급 가이드 를 참조하세요.