이 섹션에서는 프로젝트를 변경한 후 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 제품군을 실행하세요.
또한 다음과 같이 빌드 후 Tradefed 소스 트리의 명령줄에서 단위 테스트를 시작할 수 있습니다. tools/tradefederation/core/javatests/run_tradefed_tests.sh
단위 테스트는 독립 실행형으로 실행할 수 있지만 기능 테스트는 Trade Federation 자체를 사용하여 실행해야 합니다. Android 기기가 필요합니다. 모든 기능 테스트는 명명 규칙 *FuncTest
를 따라야 합니다.
단위 테스트 결과 확인
run_tradefed_tests.sh
를 실행할 때 단위 테스트는 일부 오류 조건을 포함하여 테스트 도구의 모든 부분을 실행합니다. 스택 추적을 포함하여 자세한 출력을 콘솔에 인쇄합니다.
결과의 최종 요약은 오류가 발생했는지 여부를 나타냅니다.
콘솔의 최종 요약 예:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
모든 테스트는 통과하도록 유지되므로 로컬 변경에서 실패가 발생하면 테스트가 수정되었는지 확인하십시오.
기능 테스트 추가
기능 테스트에 장치가 포함된 경우(
ITestDevice
API 사용) 제품군 정의는com.android.tradefed.DeviceFuncTests
에 있습니다. 그렇지 않으면 제품군 정의는com.android.tradefed.FuncTests
에 있습니다.테스트 방법이 기존 제품군 하위 클래스 중 하나에 넣는 것이 합리적이라면 거기에 추가하는 것을 선호합니다. 그렇지 않으면 해당 제품군에 새 클래스를 자유롭게 추가하십시오.
두 경우 모두 제품군에 추가하면 다른 기능 테스트와 함께 CI 파이프라인에서 테스트가 자동으로 실행됩니다.
기능 테스트 실행
Eclipse에서 기능 테스트를 실행하려면:
- 장치가 호스트에 연결되어 있고
adb
및 필요한 경우fastboot
가 Eclipse의 PATH에 있는지 확인하십시오. 이를 수행하는 가장 쉬운 방법은 적절한 PATH를 사용하여 쉘 설정에서 Eclipse를 시작하는 것입니다. - 자바 애플리케이션을 생성합니다. 실행 > 구성 실행을 통해 구성을 실행합니다.
- 프로젝트를
tradefed-tests
로 설정하고 메인 클래스를com.android.tradefed.command.CommandRunner
로 설정합니다. -
m tradefed-all
실행합니다. - 인수 탭에서 다음 명령줄 인수를 제공하십시오.
host --class <full path of test class to run>
- 실행 을 클릭합니다.
Eclipse 외부에서 기능 테스트를 실행합니다.
- 무역 연맹을 구축하십시오.
- 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을 업로드하기 전에 사전 제출을 실행하는 것이 좋습니다.