2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
단위 및 기능 테스트 포함
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 섹션에서는 프로젝트를 변경한 후 Trade Federation 테스트를 실행하고 테스트에 기여하는 방법을 설명합니다. 여기에는 다음이 포함됩니다.
- 새 단위 테스트 클래스 추가 위치
- Eclipse 및 Eclipse IDE 외부에서 단위 테스트 실행
- 기능 테스트 추가 위치
- 기능 테스트 실행
- 로컬에서 일부 TF 사전 제출 검사 실행
단위 테스트 추가
Android 오픈소스 프로젝트(AOSP)에서 단위 테스트 클래스를 tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java에 추가합니다.
중요: 이러한 위치에 새 단위 테스트 클래스를 추가하면 추가 설정 없이 사전 제출에서 자동으로 실행됩니다.
단위 테스트 실행
Trade Federation의 모든 AOSP 단위 테스트와 기능 테스트는 tools/tradefederation/core/tests
프로젝트에 있습니다.
Eclipse 내에서 개별 단위 테스트를 실행하려면 테스트를 마우스 오른쪽 버튼으로 클릭하고 Run As: > JUnit을 선택하기만 하면 됩니다. 모든 단위 테스트를 실행하려면 com.android.tradefed.UnitTests 도구 모음을 실행합니다.
tools/tradefederation/core/javatests/run_tradefed_tests.sh
처럼 빌드 이후에 Tradefed 소스 트리의 명령줄에서 단위 테스트를 시작할 수도 있습니다.
단위 테스트는 독립형으로 실행할 수 있지만 기능 테스트는 Trade Federation 자체를 사용하여 실행해야 하며 Android 기기가 필요합니다. 모든 기능 테스트는 이름 지정 규칙 *FuncTest
를 따라야 합니다.
단위 테스트 결과 확인
run_tradefed_tests.sh
를 실행할 때 단위 테스트는 일부 오류 조건을 포함하여 테스트 하네스의 모든 부분을 실행합니다. 스택 트레이스를 비롯하여 상세한 출력을 콘솔에 인쇄합니다.
결과의 최종 요약에는 실패가 발생했는지 표시됩니다.
콘솔에서의 최종 요약 예:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
모든 테스트는 통과를 목표로 하므로 로컬 변경사항에서 실패가 발생하면 테스트를 수정하세요.
기능 테스트 추가
기능 테스트 실행
Eclipse에서 기능 테스트를 실행하는 방법:
- 기기가 호스트 및
adb
에 연결되었는지 확인하고 필요한 경우 fastboot
가 Eclipse의 경로에 있는지 확인합니다. 가장 쉬운 방법은 셸 설정에서 적절한 경로를 사용하여 Eclipse를 실행하는 것입니다.
- Java 애플리케이션을 생성합니다. Run > Run
configurations를 통해 구성을 실행합니다.
- 프로젝트를
tradefed-tests
로, 기본 클래스를 com.android.tradefed.command.CommandRunner
로 설정합니다.
m tradefed-all
을 실행합니다.
- 명령줄 인수
host
--class <full path of test class to run>
을 Arguments 탭에 제공합니다.
- Run을 클릭합니다.
Eclipse 외부에서 기능 테스트를 실행하는 방법:
- Trade Federation을 빌드합니다.
- Android 기기를 호스트에 연결합니다.
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
를 실행합니다.
- 원하는 경우
adb devices
의 출력에 표시되는 --serial <serial no>
를 추가하여 기기를 선택합니다.
로컬 변경사항에 TF 사전 제출 테스트 실행
TF 사전 제출과 유사한 방식으로 실행하려면 다음을 사용하세요.
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
그러면 변경사항으로 인해 중단되는 테스트가 없는지 확인할 수 있도록 로컬에서 빌드한 TF에 모든 TF 사전 제출 테스트가 트리거됩니다.
TF 사전 제출 테스트는 위에서 언급한 단위 테스트의 상위 집합이지만 실행 속도가 훨씬 느립니다. 따라서 개발 도중에 단위 테스트를 실행하여 빠르게 검증하고 CL을 업로드하기 전에 사전 제출을 실행하는 것이 좋습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 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,["# Include unit and functional tests\n\nThis section explains how to run and contribute to the Trade Federation tests\nafter making a change to the project. This includes:\n\n- Where to add the new unit test classes\n- Running unit tests in Eclipse and outside the Eclipse IDE\n- Where to add functional tests\n- Running the functional tests\n- Running some of TF presubmit validation locally\n\nAdd unit tests\n--------------\n\nIn the Android Open Source Project (AOSP), add the unit tests class in:\n[tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/tests/src/com/android/tradefed/UnitTests.java)\n\nIMPORTANT: Adding your new unit test classes to these locations will result in\nthem automatically running in presubmit without additional setup.\n\nRun unit tests\n--------------\n\nAll the AOSP unit tests and functional tests for Trade Federation are located in\nthe\n[`tools/tradefederation/core/tests`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/tests/)\nproject.\n\nInside Eclipse, to run an individual unit test, simply right-click the test and\nselect **Run As \\\u003e JUnit** . To run all unit tests, run the\n**com.android.tradefed.UnitTests** suite.\n\nYou can also start the unit test from the command line in the Tradefed source\ntree after building, like so:\n`tools/tradefederation/core/javatests/run_tradefed_tests.sh`\n\nUnit tests can be executed standalone, but functional tests should be executed\nby using Trade Federation itself; they require an Android device. All functional\ntests should follow the naming convention `*FuncTest`.\n\n### Check unit tests results\n\nWhen running `run_tradefed_tests.sh`, the unit tests are exercising all parts of\nthe test harness including some error conditions. It will print verbose output\nto the console, including stack traces.\n\nThe final summary of the results will indicate if a failure occurred or not.\n\nExample final summary in the console: \n\n 12:55:02 ========== Result Summary ==========\n Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]\n\nAll tests are maintained to pass, so if any failure occurs on your local change\nplease ensure the tests are fixed.\n\nAdd functional tests\n--------------------\n\n- If your functional test involves a device (uses any `ITestDevice` API) the\n suite definition is located in [com.android.tradefed.DeviceFuncTests](https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/tradefederation/core/javatests/com/android/tradefed/DeviceFuncTests.java).\n Otherwise, the suite definition is located in [com.android.tradefed.FuncTests](https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/tradefederation/core/javatests/com/android/tradefed/FuncTests.java).\n\n- If your test methods make sense to put in one of the existing suite sub-classes,\n prefer to add it there. Otherwise, feel free add a new class to the applicable\n suite.\n\n- In either case, by adding it to the suite, your test is automatically run\n in the CI pipeline with the other functional tests.\n\nRun functional tests\n--------------------\n\nTo run a functional test from Eclipse:\n\n1. Ensure a device is connected to the host and that `adb` and if necessary `fastboot` are in Eclipse's PATH. The easiest way to do this is to launch Eclipse from a shell setup with the proper PATH.\n2. Create a Java application. Run configuration via **Run \\\u003e Run\n configurations**.\n3. Set project to `tradefed-tests` and the main class to `com.android.tradefed.command.CommandRunner`.\n4. Run `m tradefed-all`.\n5. Provide the following command line arguments in the *Arguments* tab: `host\n --class \u003cfull path of test class to run\u003e`\n6. Click **Run**.\n\nTo run functional tests outside Eclipse.\n\n1. Build Trade Federation.\n2. Connect an Android device to the host.\n3. Run `tools/tradefederation/core/javatests/run_tradefed_func_tests.sh`\n4. Optionally, choose the device by appending `--serial \u003cserial no\u003e` as it appears in the output of `adb devices`.\n\nRun TF presubmit tests against local changes\n--------------------------------------------\n\nIf you want to run in a similar way as the TF presubmit, use this: \n\n tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh\n\nThis will trigger all the TF presubmit tests against your locally built TF to\nhelp you validate that your change is not breaking any tests.\n\nTF presubmit tests are a superset of the unit tests above, but it is slower to\nrun them. So it is recommended to run the unit tests during development for\nquicker validation and to run the presubmits before uploading the CL."]]