2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
타겟 준비자
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
타겟 준비자는 준비자가 정의된 테스트 수준의 테스트 이전에 호출됩니다. 그러면 모든 기기의 테스트 설정을 원활하게 실행할 수 있습니다.
기본 인터페이스
기본 인터페이스는 실행될 setUp
메서드를 구현할 수 있게 해주는 ITargetPreparer
입니다. 준비자를 쉽게 사용 중지할 수 있도록 기본적인 사용 중지 기능을 제공하는 Google의 기본 추상화 클래스인 BaseTargetPreparer
를 구현하는 것이 좋습니다.
클리너 인터페이스
setUp
의 자연스러운 확장은 tearDown
이며 다른 인터페이스 ITargetCleaner
에서 제공됩니다. 테스트 실행 후에 setUp
에서 수행한 모든 작업을 정리할 수 있게 해주는 tearDown
인터페이스를 활용할 수 있습니다.
BaseTargetPreparer
클래스도 ITargetCleaner
를 확장합니다.
추천
각 준비자는 단일 기본 기능으로 제한하는 것이 좋습니다(예: APK 설치 또는 명령어 실행). 이렇게 하면 준비자를 훨씬 쉽게 재사용할 수 있습니다.
또한 연산이 중복되는 경우를 피할 수 있도록 준비자를 새로 추가하기 전에 가용한 준비자 목록부터 확인하는 것이 좋습니다. 준비자는 tools/tradefederation/core/src/com/android/tradefed/targetprep/
에서 사용할 수 있습니다.
XML 구성
예를 들어 객체 태그는 target_preparer
입니다. 예를 들면 다음과 같습니다.
<target_preparer class="com.android.tradefed.targetprep.InstallApkSetup">
<option name="install-arg" value="-d"/>
</target_preparer>
컨텍스트를 확인하려면
모음 설정을 참고하세요.
최상위 수준 설정
최상위 수준 설정에 지정된 준비자는 각 기기에 대해 한 번만 실행됩니다. Android 호환성 테스트 모음(CTS) 테스트의 최상위 수준 설정인 cts-common.xml
을 하나의 예로 들 수 있습니다.
모듈 수준 설정
모듈 수준에서 지정된 준비자는 항상 모듈보다 먼저 실행됩니다. Tradefed에서 backup
CTS 모듈을 실행하는 방식을 정의하는 backup/AndroidTest.xml
을 하나의 예로 들 수 있습니다.
준비자는 모듈 앞에 실행되지만 모든 시스템 상태 검사기 다음에 실행됩니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Target preparers are invoked before the tests in the\n[test level](/docs/core/tests/tradefed/testing/through-suite/setup#definitions)\nin which they are defined. This allows the setup of any device for tests to run\nsmoothly.\n\nBase interface\n--------------\n\nThe base interface is\n[`ITargetPreparer`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/ITargetPreparer.java),\nwhich allows implementation of a `setUp` method to be executed. We\nrecommend implementing our basic abstract class\n[`BaseTargetPreparer`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/BaseTargetPreparer.java),\nwhich provides a built-in disablement feature to easily disable a preparer.\n\nCleaner interface\n-----------------\n\nThe natural extension of `setUp` is `tearDown` and is provided by a different\ninterface,\n[`ITargetCleaner`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/ITargetCleaner.java). That provides the `tearDown` interface\nthat allows cleaning up anything that was done in `setUp` after the test\nexecution.\n\nThe `BaseTargetPreparer` class also extends `ITargetCleaner`.\n\nRecommendations\n---------------\n\nWe recommend each preparer be limited to a single main function, for example\ninstalling an APK or running a command. This allows for easier reuse of\npreparers.\n\nAlso check the list of available preparers before adding a new one to\navoid duplicating work. Preparers are available in [`tools/tradefederation/core/src/com/android/tradefed/targetprep/`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/).\n\nXML configuration\n-----------------\n\nThe object tag is `target_preparer`, for example: \n\n \u003ctarget_preparer class=\"com.android.tradefed.targetprep.InstallApkSetup\"\u003e\n \u003coption name=\"install-arg\" value=\"-d\"/\u003e\n \u003c/target_preparer\u003e\n\nAlso refer to\n[Set up suites](/docs/core/tests/tradefed/testing/through-suite/setup)\nfor context.\n\n### Top-level setup\n\nIf specified in a top-level setup, the preparer runs only once for each\ndevice. An example is\n[`cts-common.xml`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tools/cts-tradefed/res/config/cts-common.xml),\nwhich is a top-level setup for Android Compatibility Test Suite (CTS) tests.\n\n### Module-level setup\n\nIf specified at the module level, the preparer always runs before that\nmodule. An example is\n[`backup/AndroidTest.xml`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/backup/AndroidTest.xml),\nwhich defines how Tradefed runs the `backup` CTS module.\n\nNote that while the preparer runs before the module, it runs *after* any\n[system status checkers](/docs/core/tests/tradefed/testing/through-suite/system-status-checker)."]]