구글테스트

플랫폼용 GoogleTest(GTest, "네이티브 테스트"라고도 함)는 일반적으로 하위 수준 HAL에 액세스하거나 다양한 시스템 서비스에 대해 원시 IPC를 수행합니다. 이 때문에 테스트 접근 방식은 일반적으로 테스트 중인 서비스와 밀접하게 연결됩니다.

지속적인 테스트 인프라와 통합하려면 GTest 프레임워크를 사용하여 GTest를 빌드하세요.

다음은 플랫폼 소스에 있는 GTest의 몇 가지 예입니다.

단계 요약

  1. 예제 GTest 모듈 설정 을 따르십시오.
  2. GTest 종속성을 자동으로 포함하려면 테스트 모듈 구성에서 BUILD_NATIVE_TEST 빌드 규칙을 사용하세요.
  3. 간단 하고 복잡한 옵션에 대한 예에 따라 테스트 구성을 작성하십시오.
  4. 증분 빌드의 경우 mmm , 전체 빌드의 경우 mma 로 테스트 모듈을 빌드합니다.

    make hwui_unit_tests -j
    
  5. 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>
  1. Trade Federation 테스트 하네스를 사용하여 테스트를 실행합니다.

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  2. 수동으로 설치 및 실행:

    1. 생성된 테스트 바이너리를 기기에 푸시합니다.

      adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
        /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. GTest를 시작하고 장치에서 테스트 바이너리를 호출하여 테스트를 실행합니다.

      adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

    테스트 실행 사용자 지정에 대한 자세한 내용을 보려면 --help 매개변수를 테스트 바이너리에 추가하십시오. 매개변수에 대한 자세한 내용은 GTest 고급 가이드 를 참조하세요.