안드로이드 테스트러너 도구
소개
androidtestrunner
도구는 Android 기기 및 에뮬레이터에서 Qt 테스트를 실행합니다. 이 도구는 APK 설치 관리, 테스트 실행, 결과 검색 등 테스트 실행에 필요한 단계를 자동화합니다.
androidtestrunner
을 사용하기 전에 CMake 또는 qmake로 Qt 테스트 프로젝트를 구성했는지 확인하세요.
작동 방법
- 먼저 APK 빌드 명령을 실행하여 테스트에 필요한 APK를 생성하는 것으로 시작합니다.
- 그런 다음 대상 기기에 테스트 앱을 설치하고 테스트 앱을 시작하여 테스트 프로세스를 시작합니다.
- 테스트 결과는 디바이스의 앱 데이터 디렉토리에 기록되어 포괄적인 테스트 결과를 캡처할 수 있습니다.
- 테스트가 끝나면 런처는 결과 파일 옆에 종료 코드 파일을 작성합니다.
- 이 단계에서
androidtestrunner
은 디바이스에서 이러한 결과 파일을 검색하여 종료 코드에 오류가 있는지 검사합니다. - 문제가 감지되면 즉시 잠재적인 충돌 스택 추적을 포함한 앱의 로그캣 로그를 인쇄하며, 각 프레임의 파일 이름과 줄 번호가 표시되도록 미화하여 표시합니다. 또한 테스트 실행 중에 이러한 이벤트가 발생하면 애플리케이션이 응답하지 않음(ANR) 로그를 캡처하여 보고합니다.
통합 환경을 개선하기 위해 테스트 러너는 테스트 러너 프로세스의 호스트 환경에서 앱으로 QT 또는 QTEST 환경 변수를 전파하여 일관성과 원활한 테스트 워크플로우를 보장합니다.
테스트 래퍼로 테스트 실행하기
다음은 특정 에뮬레이터 인스턴스에서 tst_android
테스트를 실행하면서 환경 변수를 전달하고 testAssets
테스트 케이스만 실행하는 예제입니다:
ANDROID_SERIAL=emulator-5554 QT_DEBUG_PLUGINS=1 ./tst_android testAssets
결과 검색하기
기본적으로, 그리고 명시적으로 stdout 테스트 출력을 비활성화하지 않은 경우 테스트가 실행되는 동안 테스트 결과가 호스트에 인쇄됩니다. 테스트를 실행한 후 명시적으로 요청된 모든 테스트 파일은 해당 형식과 함께 지정된 출력 경로로 가져옵니다.
Qt Test 프레임워크에 대한 자세한 내용은 Qt Test 개요를 참조하세요.
사용 방법
androidtestrunner
를 실행하는 기본 구문은 다음과 같습니다:
androidtestrunner [ARGUMENTS] -- [TESTARGS]
특정 기기/에뮬레이터에서 테스트를 실행하려면 adb
환경 varialbe ANDROID_SERIAL
또는 ANDROID_DEVICE_SERIAL
를 사용합니다.
필수 인수
테스트 실행자는 항상 다음 인수가 전달되기를 기대합니다:
--path <build-path>
: 안드로이드 그래들 패키지가 빌드된 경로, 일반적으로android-build-testname
.--make <build-command>
: 테스트 APK를 빌드하는 데 사용되는 명령(예:cmake --build <build-dir> --target <target>_make_apk
).참고: 이 인수는 테스트 실행기의 여러 인수가 아니라
--make
인수의 값으로 취급되도록 따옴표로 묶어서 전달하세요.--apk <apk-path>
: 빌드 명령에 의해 생성되고 디바이스에 설치되는 테스트 APK의 경로입니다.
선택적 인수
다음과 같은 선택적 인수를 전달할 수도 있습니다:
--adb <adb-path>
: 사용자 지정 ADB 명령 경로를 지정합니다. 기본값은 시스템의$PATH
에 있는adb
경로입니다.--activity <activity-name>
: 실행할 사용자 지정 활동을 지정합니다. 기본값은AndroidManifest.xml
에 정의된 첫 번째 활동입니다.--timeout <seconds>
: 테스트를 실행하기 위한 시간 제한을 설정합니다. 기본값은 600초(10분)입니다.--skip-install-root
: make 명령에 INSTALL_ROOT를 추가하지 않도록 하며 주로qmake
을 사용할 때 유용합니다.--show-logcat
: 테스트 실패 여부와 관계없이 로그캣 출력을 stdout에 출력합니다. 실패 시 로그가 인쇄되며 크래시 스택트레이스 또는 ANR 이벤트가 포함될 수 있습니다.--ndk-stack <command-path>
: 크래시 스택 추적을 기호화하기 위한 ndk-stack 도구의 경로를 지정합니다. 기본값은$ANDROID_NDK_ROOT
에 있는 도구 경로를 사용합니다.-- <arguments>
: 대시 뒤의 모든 것을 테스트 인수로 전달합니다.--verbose
: 자세한 출력을 인쇄합니다.--help
: 도움말 정보를 표시합니다.
사용 예
다음은 testAssets
테스트 케이스만 실행하여 tst_android
테스트를 실행하는 예제입니다:
androidtestrunner \ --path ~/tst_android/build/android-build-tst_openssl \ --make "cmake --build ~/tst_android/build --target apk" \ --apk ~/tst_android/build/android-build-tst_openssl/tst_openssl.apk \ --skip-install-root \ testAssets
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.